소스 검색

设备信息

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 { e?.let {
LogHelper.e(BuildConfig.versionCode.toString()) LogHelper.e(BuildConfig.versionCode.toString())
LogHelper.e(BuildConfig.versionName) 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 { fun getDataBase(context: Context): PushDatabase {
if (!::dataBase.isInitialized) { if (!::dataBase.isInitialized) {
val b = Room.databaseBuilder(context, PushDatabase::class.java, "pushDb")
dataBase = Room.databaseBuilder(context, PushDatabase::class.java, "pushDb")
// .addMigrations(MIGRATION_1_2) // .addMigrations(MIGRATION_1_2)
b.allowMainThreadQueries() //允许在主线程 操作db
dataBase = b.build()
.allowMainThreadQueries() //允许在主线程 操作db
.build()
} }
return dataBase 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 import androidx.room.PrimaryKey


@Entity @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.ContentProvider
import android.content.ContentValues import android.content.ContentValues
import android.content.UriMatcher import android.content.UriMatcher
import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
import android.net.Uri import android.net.Uri
import android.text.TextUtils
import android.util.Log
import android.os.Build
import androidx.sqlite.db.SupportSQLiteQueryBuilder import androidx.sqlite.db.SupportSQLiteQueryBuilder
import cn.org.bjca.trust.push.CrashHandler import cn.org.bjca.trust.push.CrashHandler
import cn.org.bjca.trust.push.common.CommonHelper import cn.org.bjca.trust.push.common.CommonHelper
import cn.org.bjca.trust.push.common.LogHelper import cn.org.bjca.trust.push.common.LogHelper
import cn.org.bjca.trust.push.db.DbHelper import cn.org.bjca.trust.push.db.DbHelper
import cn.org.bjca.trust.push.db.device.Device 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.huawei.hms.push.HmsMessaging
import com.xiaomi.push.it




class PushProvider : ContentProvider() { class PushProvider : ContentProvider() {
@@ -39,7 +34,8 @@ class PushProvider : ContentProvider() {
CrashHandler.init() CrashHandler.init()
// 初始化唯一码 // 初始化唯一码
initDevice() initDevice()
//getHwToken()

// 华为推送
HmsMessaging.getInstance(context).isAutoInitEnabled = true HmsMessaging.getInstance(context).isAutoInitEnabled = true


// MiPushClient.registerPush(this, APP_ID, APP_KEY); // MiPushClient.registerPush(this, APP_ID, APP_KEY);
@@ -50,9 +46,34 @@ class PushProvider : ContentProvider() {
private fun initDevice() { private fun initDevice() {
val device = DbHelper.getDataBase().deviceDao().getAll() val device = DbHelper.getDataBase().deviceDao().getAll()
if (device.isEmpty()) { 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() { 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()
}
} }

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