소스 검색

设备信息

master
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()
}
}

불러오는 중...
취소
저장