Android Q适配之IMEI替换为Android_id
程序员文章站
2023-10-31 08:21:28
前置工作:
项目配置升到对应的29版本
compilesdkversion: 29,
buildtoolsversion: ‘29.0.0',
minsdkversio...
前置工作:
项目配置升到对应的29版本
compilesdkversion: 29,
buildtoolsversion: ‘29.0.0',
minsdkversion : 19,
targetsdkversion : 29,
javaversion : javaversion.version_1_8
升级到android q后的权限提示界面
老版本获取imei的方法:
public static string getimei(context context) { string deviceid = null; try { telephonymanager tm = (telephonymanager) context .getsystemservice(context.telephony_service); deviceid = tm.getdeviceid(); if (deviceid == null || "".equals(deviceid)) { return getlocalmacaddress(context); } } catch (exception e) { e.printstacktrace(); if (deviceid == null || "".equals(deviceid)) { return getlocalmacaddress(context);//获取mac地址,在android 9 p版本中,地址会随机变化,不可用作唯一标识,可去掉。 } } return deviceid; }
android q获取imei方法
public static string getimei(context context) { string deviceid = null; try { telephonymanager tm = (telephonymanager) context .getsystemservice(context.telephony_service); if (build.version.sdk_int >= build.version_codes.q) { deviceid = settings.system.getstring(context.getcontentresolver(), settings.secure.android_id); } else { // request old storage permission if (activitycompat.checkselfpermission(context, manifest.permission.read_phone_state) != packagemanager.permission_granted) { // todo: consider calling // activitycompat#requestpermissions // here to request the missing permissions, and then overriding // public void onrequestpermissionsresult(int requestcode, string[] permissions, // int[] grantresults) // to handle the case where the user grants the permission. see the documentation // for activitycompat#requestpermissions for more details. return null; } deviceid = tm.getdeviceid(); } if (deviceid == null || "".equals(deviceid)) { return getlocalmacaddress(context); } } catch (exception e) { e.printstacktrace(); if (deviceid == null || "".equals(deviceid)) { return getlocalmacaddress(context); } } return deviceid; }
谷歌官方有声明:手机恢复出厂设置,android id会重置。
如果用户拒绝权限,也还是会获取不到设备标识。
所以具体优化需自行结合开发情景,有更好的建议的道友可以评论补充说明^ - ^…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: java中两个byte数组实现合并的示例