android 获得设备唯一标识码(总有一款适合你)

android 获得设备唯一标识码(总有一款适合你),第1张

最近在做一个OA考勤项目,里面有个需求是一个账号只允许绑定一台设备, 这就需要将设备唯一标识码与账号绑定在一起,咋一听 这还不So Easy啊,直接获取deviceID 不就好了。。。

咋一 *** 作也挺好。 可到了大面积的群体用户测试环节发现了几个问题。

简言之就是如果你的手机需要考虑Android9以上的设备,你就没办法通过获取系统提供的API完全的获取到设备唯一标识码,根据Android文档 唯一标识符最佳做法 你也许可以这样

呃 这个特殊运营商许可 和这个 READ_PRIVILEGED_PHONE_STATE 好像都不是我们一般的安卓应用能获取的到的。

想要能Android9以上又能不受到刷机,格式化的影响。 就只能 使用移动安全联盟(MSA)提出的补充设备标识

是由 移动安全联盟 提出的,包含以下三个标识:

缺点就是:并不是所有的品牌商都兼容了, 而且需要导入他们对应的包 。 这部分可参考 Android 10获取设备标识方案探究 这篇文章

特点: 如果格式化或者刷机,这个设备ID会更改(这个也是合理的)。

完善:可以在第一次生成后放入到内部存储和外部存储,下次进入先从内部存储获取,如果没有在去外部存储比较(App卸载,内部存储就没了)。 如果在没有就生成一个

安卓系统手机的DEVICE ID只要很简单的一个命令就可以查看:1、点击电话,启动拨号界面,然后输入“##8255##”即可进入GTalk Service Monitor界面了。GTalk Service Monitor界面2、红圈圈便是Device ID了。

首先,添加权限:

<uses-permission android:name="androidpermissionREAD_PHONE_STATE"/>

有了权限之后才能使用 TelephonyManager ,不然会报没有权限的错误。

TelephonyManager telephonyManager = (TelephonyManager)thisgetSystemService( ContextTELEPHONY_SERVICE);

//获取本机MIEI号码(仅手机存在)

String deviceId = telephonyManagergetDeviceId();

//获取设备序列号

String sn = telephonyManagergetSimSerialNumber();

//获取本机电话号码

String phonenumber = telephonyManagergetLine1Number();

获取本机号码:

//获取本机型号

String phonetype = androidosBuildMODEL;

(1)DEVICE_ID

Android系统为开发者提供的用于标识手机设备的串号

TelephoneManager tm=TelephoneManagergetSystemService(ContextTELEPHONE_SERVICE);

tmgetDeviceId();

缺陷:

(1)非手机设备

(2)权限问题

(2)ANDROID_ID

在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID

String ANDROID_ID=SettingSystemgetString(getContentResolver(),SettingSystemANDROID_ID);

缺陷:

(1)厂商Bug:不同的设备可能会产生相同的ANDROID_ID

(2)厂商Bug:有些设备返回的值为null

(3)Serial Number

Android系统23版本以上可以通过下面的方法得到Serial Number,且非手机设备也可以通过该接口获取。

String serial=AndoridosBuildSERIAL;

如果你想要得到设备本身的唯一值, TMgetDeviceId()应该是足够了。不过显然的,有些用户比其他人更加偏执一些,可以将这些标识中的一个或者多个进行hash运算就很有用,生成的字符串仍然可以唯一标识该设备,但是不会明确的标识实际的设备。例如,使用StringhashCode(),再加上一个UUID,这里有详细的代码》》 >

以上就是关于android 获得设备唯一标识码(总有一款适合你)全部的内容,包括:android 获得设备唯一标识码(总有一款适合你)、我想知道我手机的device ID是什么、如何获得Android设备名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10110653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存