|
@@ -16,7 +16,7 @@ import java.io.IOException
|
|
|
|
|
|
object Util {
|
|
|
|
|
|
- var IMEI = ""
|
|
|
+ var deviceImei = ""
|
|
|
var UUID_FILE_NAME = "wdkl_uuid.txt"
|
|
|
|
|
|
/*
|
|
@@ -24,40 +24,43 @@ object Util {
|
|
|
*/
|
|
|
@SuppressLint("MissingPermission", "PrivateApi")
|
|
|
fun getIMEI(context: Context): String {
|
|
|
- if (Build.VERSION.SDK_INT >= 29) {
|
|
|
- /*val UUIDStr = readSD()
|
|
|
- if (UUIDStr == null || UUIDStr.isEmpty()) { //如果为空或者空字符串就生成UUID创建文件并写入UUID
|
|
|
- val uuid: String = Date().getTime().toString()
|
|
|
- writeSD(uuid)
|
|
|
- IMEI = uuid
|
|
|
- } else {
|
|
|
- IMEI = UUIDStr
|
|
|
- }
|
|
|
- return IMEI*/
|
|
|
-
|
|
|
- IMEI = Settings.Secure.getString(BaseApplication.appContext.getContentResolver(), Settings.Secure.ANDROID_ID)
|
|
|
- return IMEI
|
|
|
- }
|
|
|
-
|
|
|
- IMEI = SystemTool.getPhoneImei(context)
|
|
|
- if (TextUtils.isEmpty(IMEI)) {
|
|
|
+ deviceImei = SystemTool.getPhoneImei(context)
|
|
|
+ if (TextUtils.isEmpty(deviceImei)) {
|
|
|
val tm = (context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager)
|
|
|
try {
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
|
- IMEI = tm.imei
|
|
|
+ deviceImei = tm.imei
|
|
|
} else {
|
|
|
- IMEI = tm.deviceId
|
|
|
+ deviceImei = tm.deviceId
|
|
|
}
|
|
|
} catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
}
|
|
|
|
|
|
- if (TextUtils.isEmpty(IMEI)) {
|
|
|
- IMEI = SystemTool.getLocalMacAddress()
|
|
|
-// IMEI = "35" + //we make this look like a valid IMEI
|
|
|
-// Build.BOARD.length % 10 + Build.BRAND.length % 10 + Build.CPU_ABI.length % 10 + Build.DEVICE.length % 10 + Build.DISPLAY.length % 10 + Build.HOST.length % 10 + Build.ID.length % 10 + Build.MANUFACTURER.length % 10 + Build.MODEL.length % 10 + Build.PRODUCT.length % 10 + Build.TAGS.length % 10 + Build.TYPE.length % 10 + Build.USER.length % 10 //13 digits
|
|
|
+ if (TextUtils.isEmpty(deviceImei)) {
|
|
|
+ //尝试获取序列号
|
|
|
+ deviceImei = getSerialNumber()
|
|
|
}
|
|
|
}
|
|
|
- return IMEI
|
|
|
+
|
|
|
+ //如果还是获取不到id则使用AndroidId
|
|
|
+ if (TextUtils.isEmpty(deviceImei)) {
|
|
|
+ deviceImei = Settings.Secure.getString(BaseApplication.appContext.getContentResolver(), Settings.Secure.ANDROID_ID)
|
|
|
+ }
|
|
|
+
|
|
|
+ return deviceImei
|
|
|
+ }
|
|
|
+
|
|
|
+ fun getSerialNumber(): String {
|
|
|
+ var serial = ""
|
|
|
+ try {
|
|
|
+ val c = Class.forName("android.os.SystemProperties")
|
|
|
+ val get = c.getMethod("get", String::class.java)
|
|
|
+ serial = get.invoke(c, "ro.serialno") as String
|
|
|
+ } catch (e: java.lang.Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ return serial
|
|
|
}
|
|
|
|
|
|
fun writeSD(content: String): String? {
|