From 357d2d2c693c9ec42821c766c416ea05ae5333ab Mon Sep 17 00:00:00 2001 From: xuqm Date: Thu, 23 Feb 2023 16:35:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/org/bjca/trust/push/CrashHandler.kt | 10 ---- .../java/cn/org/bjca/trust/push/db/DbHelper.kt | 6 +- .../cn/org/bjca/trust/push/db/device/Device.kt | 21 ++++++- .../org/bjca/trust/push/provider/PushProvider.kt | 68 ++++++++++------------ 4 files changed, 53 insertions(+), 52 deletions(-) diff --git a/push/src/main/java/cn/org/bjca/trust/push/CrashHandler.kt b/push/src/main/java/cn/org/bjca/trust/push/CrashHandler.kt index 3c1536b..385a371 100644 --- a/push/src/main/java/cn/org/bjca/trust/push/CrashHandler.kt +++ b/push/src/main/java/cn/org/bjca/trust/push/CrashHandler.kt @@ -29,16 +29,6 @@ object CrashHandler : Thread.UncaughtExceptionHandler { e?.let { LogHelper.e(BuildConfig.versionCode.toString()) LogHelper.e(BuildConfig.versionName) - val fields = Build::class.java.declaredFields - for (field in fields) { - try { - field.isAccessible = true -// infos.put(field.name, field[null].toString()) - LogHelper.e(field.name + " : " + CommonHelper.anyToString(field[null])) - } catch (e: Exception) { - LogHelper.e("an error occured when collect crash info", e) - } - } } } diff --git a/push/src/main/java/cn/org/bjca/trust/push/db/DbHelper.kt b/push/src/main/java/cn/org/bjca/trust/push/db/DbHelper.kt index 4d36aba..9b8a090 100644 --- a/push/src/main/java/cn/org/bjca/trust/push/db/DbHelper.kt +++ b/push/src/main/java/cn/org/bjca/trust/push/db/DbHelper.kt @@ -16,10 +16,10 @@ object DbHelper { fun getDataBase(context: Context): PushDatabase { if (!::dataBase.isInitialized) { - val b = Room.databaseBuilder(context, PushDatabase::class.java, "pushDb") + dataBase = Room.databaseBuilder(context, PushDatabase::class.java, "pushDb") // .addMigrations(MIGRATION_1_2) - b.allowMainThreadQueries() //允许在主线程 操作db - dataBase = b.build() + .allowMainThreadQueries() //允许在主线程 操作db + .build() } return dataBase } diff --git a/push/src/main/java/cn/org/bjca/trust/push/db/device/Device.kt b/push/src/main/java/cn/org/bjca/trust/push/db/device/Device.kt index a731ec8..a315a09 100644 --- a/push/src/main/java/cn/org/bjca/trust/push/db/device/Device.kt +++ b/push/src/main/java/cn/org/bjca/trust/push/db/device/Device.kt @@ -5,4 +5,23 @@ import androidx.room.Entity import androidx.room.PrimaryKey @Entity -data class Device(@PrimaryKey val p_id: Int, @ColumnInfo(name = "device_id") val device: String) \ No newline at end of file +data class Device( + @PrimaryKey var p_id: Int = 0, + @ColumnInfo(name = "device_id") var device: String = "", + // 厂商 MANUFACTURER + @ColumnInfo(name = "manufacturer") var manufacturer: String = "", + // 品牌 BRAND + @ColumnInfo(name = "brand") var brand: String = "", + // 型号 MODEL + @ColumnInfo(name = "model") var model: String = "", + // cpu CPU_ABI + @ColumnInfo(name = "cpu_abi") var cpuAbi: String = "", + // 指纹 FINGERPRINT + @ColumnInfo(name = "fingerprint") var fingerprint: String = "", + // SUPPORTED_32_BIT_ABIS + @ColumnInfo(name = "supported_32_bit_abis") var supported32BitAbis: String = "", + // SUPPORTED_64_BIT_ABIS + @ColumnInfo(name = "supported_64_bit_abis") var supported64BitAbis: String = "", + // SUPPORTED_ABIS + @ColumnInfo(name = "supported_abis") var supportedAbis: String = "", + ) \ No newline at end of file diff --git a/push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt b/push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt index d7b6af3..325d3ae 100644 --- a/push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt +++ b/push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt @@ -3,21 +3,16 @@ package cn.org.bjca.trust.push.provider import android.content.ContentProvider import android.content.ContentValues import android.content.UriMatcher -import android.content.pm.PackageManager import android.database.Cursor import android.net.Uri -import android.text.TextUtils -import android.util.Log +import android.os.Build import androidx.sqlite.db.SupportSQLiteQueryBuilder import cn.org.bjca.trust.push.CrashHandler import cn.org.bjca.trust.push.common.CommonHelper import cn.org.bjca.trust.push.common.LogHelper import cn.org.bjca.trust.push.db.DbHelper import cn.org.bjca.trust.push.db.device.Device -import com.huawei.hms.aaid.HmsInstanceId -import com.huawei.hms.common.ApiException import com.huawei.hms.push.HmsMessaging -import com.xiaomi.push.it class PushProvider : ContentProvider() { @@ -39,7 +34,8 @@ class PushProvider : ContentProvider() { CrashHandler.init() // 初始化唯一码 initDevice() -//getHwToken() + + // 华为推送 HmsMessaging.getInstance(context).isAutoInitEnabled = true // MiPushClient.registerPush(this, APP_ID, APP_KEY); @@ -50,9 +46,34 @@ class PushProvider : ContentProvider() { private fun initDevice() { val device = DbHelper.getDataBase().deviceDao().getAll() if (device.isEmpty()) { - DbHelper.getDataBase().deviceDao().insertAll(Device(1, "ryctvbnml;feakbfveugavhb ")) + val d = Device() + d.p_id = 1 + val fields = Build::class.java.declaredFields + for (field in fields) { + try { + field.isAccessible = true + when (field.name) { + "MANUFACTURER" -> d.manufacturer = CommonHelper.anyToString(field[null]) + "BRAND" -> d.brand = CommonHelper.anyToString(field[null]) + "MODEL" -> d.model = CommonHelper.anyToString(field[null]) + "CPU_ABI" -> d.cpuAbi = CommonHelper.anyToString(field[null]) + "FINGERPRINT" -> { + d.fingerprint = CommonHelper.anyToString(field[null]) + d.device = CommonHelper.anyToString(field[null]) + } + "SUPPORTED_32_BIT_ABIS" -> d.supported32BitAbis = + CommonHelper.anyToString(field[null]) + "SUPPORTED_64_BIT_ABIS" -> d.supported64BitAbis = + CommonHelper.anyToString(field[null]) + "SUPPORTED_ABIS" -> d.supportedAbis = CommonHelper.anyToString(field[null]) + } + } catch (e: Exception) { + LogHelper.e("an error occured when collect crash info", e) + } + } + DbHelper.getDataBase().deviceDao().insertAll(d) } - LogHelper.e(CommonHelper.anyToString(device)) + LogHelper.e(CommonHelper.anyToString(DbHelper.getDataBase().deviceDao().getAll())) } private fun initDb() { @@ -112,33 +133,4 @@ class PushProvider : ContentProvider() { } } - // 华为相关 - private fun getHwToken() { - // 创建一个新线程 - object : Thread() { - override fun run() { - try { - - - val appId = context!!.packageManager.getApplicationInfo( - context!!.packageName, - PackageManager.GET_META_DATA - ).metaData.getString("HUAWEI_APP_ID")?.substring(1) - LogHelper.e("appId:$appId") - - // 输入token标识"HCM" - val tokenScope = "HCM" - val token = HmsInstanceId.getInstance(context).getToken(appId, tokenScope) - LogHelper.e("get token:$token") - - // 判断token是否为空 -// if (!TextUtils.isEmpty(token)) { -//// sendRegTokenToServer(token) -// } - } catch (e: ApiException) { - LogHelper.e("get token failed, $e") - } - } - }.start() - } } \ No newline at end of file