最近在做一个OA考勤项目,里面有个需求是一个账号只允许绑定一台设备, 这就需要将设备唯一标识码与账号绑定在一起,咋一听 这还不So Easy啊,直接获取deviceID 不就好了。。。
咋一 *** 作也挺好。 可到了大面积的群体用户测试环节发现了几个问题。
简言之就是如果你的手机需要考虑Android9以上的设备,你就没办法通过获取系统提供的API完全的获取到设备唯一标识码,根据Android文档 唯一标识符最佳做法 你也许可以这样
呃 这个特殊运营商许可 和这个 READ_PRIVILEGED_PHONE_STATE 好像都不是我们一般的安卓应用能获取的到的。
想要能Android9以上又能不受到刷机,格式化的影响。 就只能 使用移动安全联盟(MSA)提出的补充设备标识
是由 移动安全联盟 提出的,包含以下三个标识:
缺点就是:并不是所有的品牌商都兼容了, 而且需要导入他们对应的包 。 这部分可参考 Android 10获取设备标识方案探究 这篇文章
特点: 如果格式化或者刷机,这个设备ID会更改(这个也是合理的)。
完善:可以在第一次生成后放入到内部存储和外部存储,下次进入先从内部存储获取,如果没有在去外部存储比较(App卸载,内部存储就没了)。 如果在没有就生成一个
abdroid可以取到唯一的设备ID,如下方法:
TelephonyManagertelephonyManager = ( TelephonyManager )getSystemService( ContextTELEPHONY_SERVICE );
id = telephonyManagergetDeviceId(); //返回的就是设备id
在获取的时候,清单文件配置这个权限:
androidpermissionREAD_PHONE_STATE
使用范围:只能支持拥有通话功能的设备,对于平板不可以。
方法步骤(以安卓50为例)
1、依次点击 设定---关于设备---状态。
2、现在可以看到安卓设备的IMEI(国际移动设备识别码)唯一编号。
3、或者用手机的拨号键盘输入#06# 可以d出IMEI
以上就是关于android 获得设备唯一标识码(总有一款适合你)全部的内容,包括:android 获得设备唯一标识码(总有一款适合你)、Android能够获取到唯一的设备ID吗、如何检索Android设备的唯一ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)