xuqm 1 рік тому
джерело
коміт
357d2d2c69
4 змінених файлів з 53 додано та 52 видалено
  1. +0
    -10
      push/src/main/java/cn/org/bjca/trust/push/CrashHandler.kt
  2. +3
    -3
      push/src/main/java/cn/org/bjca/trust/push/db/DbHelper.kt
  3. +20
    -1
      push/src/main/java/cn/org/bjca/trust/push/db/device/Device.kt
  4. +30
    -38
      push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt

+ 0
- 10
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)
}
}
}

}


+ 3
- 3
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
}


+ 20
- 1
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)
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 = "",
)

+ 30
- 38
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()
}
}

Завантаження…
Відмінити
Зберегти