Android 获取设备唯一识别码分析

发布于 2021-02-18 11:02:51 字数 1835 浏览 2490 评论 0

Android 开发过程中,开发者迫于产品的淫威,需要实现一些特殊需要,比如获取 Android 设备号进去登录校验等等,但同时设备号对用户而言是不愿意暴露的。对于Android 中唯一区别设备信息的有哪些,怎么获得,特别整理一下。

IMEI

IMEI 唯一标识每台Android设备的序号

获取方式

<uses-permission Android:name="android.permission.READ_PHONE_STATE" />
   TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)
   String imei = tm.getDeviceId()

IMEI 特点

1,在Android 6.0 对系统权限需要申请,READ_PHONE_STATE 被列为危险权限,如果冒然使用该权限只查询IMEI有点大材小用,用户也不一定授权,所以IMEI会不好获取。

2,TELEPHONY_SERVICE 对于平板、电视等Android系统设备不一定能获得。

3,系统bug可能获取不到IMEI信息

ANDROID_ID

设备首次启动系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,如果手机出厂化,会重新生成一个设备号。

获取方式

Settings.System.getString(mContext.getContentResolver(), Settings.System.ANDROID_ID

ANDROID_ID 特点

1,相比 IMEI 而言获取的方式和途径相对而言比较容易

2,由于厂商之间各自的需求,Android_id 获取不一定正确,有可能和 IMEI 相同,也有可能会有重复的,不能有效区分唯一设备信息。

MAC 地址

MAC 使用手机 Wifi 或蓝牙的 MAC 地址作为设备标识

获取方式

WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
String mac = wifi.getConnectionInfo().getMacAddress();

MAC 通过wifi或者蓝牙获取需要设备支持 wifi 和蓝牙,并且保证打开

UUID

UUID (Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。

获取方式

UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法.

参考文献

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文