详解关于AndroidQ获取不到imsi解决方案
程序员文章站
2022-05-21 21:19:29
android q 禁止获取 imei 和设备序列号;
官方的解决方案是这样:
结合官方实现方案和实际需求自己整理的实现方法如下:
方案一:
/**
* 获取设备唯...
android q 禁止获取 imei 和设备序列号;
官方的解决方案是这样:
结合官方实现方案和实际需求自己整理的实现方法如下:
方案一:
/** * 获取设备唯一标识符 * * @return 唯一标识符 */ public static string getdeviceid() { // 通过 sharedpreferences 获取 guid string guid = sputils.getinstance().getstring(appconfig.sp_guid); if (!textutils.isempty(guid)) { return guid; } // 获取 android_id string android_id = settings.system.getstring( app.getapp().getcontentresolver(), settings.secure.android_id); if (!textutils.isempty(android_id)) { // 通过 android_id 生成 guid(唯一标识符) guid = encryptutils.encryptmd5tostring(android_id); } else { // 通过 uuid 生成 guid(唯一标识符) guid = encryptutils.encryptmd5tostring(uuid.randomuuid().tostring()); } // 保存 guid 到 sharedpreferences sputils.getinstance().put(appconfig.sp_guid, guid); return guid; }
上面 sputils 是自己封装的 sharedpreferences 的一个工具类。
方案二:
/** * 获取设备唯一标识符 * * @return 唯一标识符 */ @suppresslint("hardwareids") public static string getdeviceid() { string m_szdevidshort = "35" + 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 位 string serial = "serial";// 默认serial可随便定义 try { if (build.version.sdk_int >= build.version_codes.o) { if (activitycompat.checkselfpermission(app.getapp(), manifest.permission.read_phone_state) == packagemanager.permission_granted) { // 由于 android q 唯一标识符权限的更改会导致 // android.os.build.getserial() 返回 unknown, // 但是 m_szdevidshort 是由硬件信息拼出来的,所以仍然保证了uuid 的唯一性和持久性。 serial = android.os.build.getserial();// android q 中返回 unknown } } else { serial = build.serial; } } catch (exception ignored) { } return new uuid(m_szdevidshort.hashcode(), serial.hashcode()).tostring(); }
由于m_szdevidshort是由硬件信息拼出来的,所以保证了uuid的唯一性和持久性。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 元旦吃啥美味佳肴
下一篇: 春天吃甘蔗有什么好处?甘蔗4大食谱