Android能够获取到唯一的设备ID吗?
来源:互联网 发布:国内erp软件排名 编辑:程序博客网 时间:2024/05/29 16:09
Android是否有唯一的设备ID,如果有的话,该怎样快速有效获取?
Settings.Secure#ANDROID_ID 返回Android ID ,是一个64位的16进制字符串
1
2
3
import
android.provider.Settings.Secure;
private
String android_id = Secure.getString(getContext().getContentResolver(),Secure.ANDROID_ID);
关于这个问题有很多的答案,不过其中大部分将只能算是答对了一部分,还不够好。
根据我在很多设备上的测试(所有的电话,至少有一个是无效的)
- 所有设备针对 TelephonyManager.getDeviceId() 测试都有返回值
- 所有GSM设备(都有SIM卡)针对 TelephonyManager.getSimSerialNumber() 测试都有返回值
- 所有CDMA设备针对 getSimSerialNumber() 测试返回 NULL(预期中的)
- 所有有谷歌帐户的设备都返回了 ANDROID_ID 值
- 所有的CDMA设备针对 ANDROID_ID 和 TelephonyManager.getDeviceId() 都返回相同的值(或派生自同一个值) - 前提是安装过程中已经添加了谷歌帐户。
- 我还没有机会测试没有SIM卡的GSM设备,没有谷歌账户的GSM设备,以及任何在飞行模式下的设备。
1
2
3
4
5
6
7
8
9
final
TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
final
String tmDevice, tmSerial, androidId;
tmDevice =
""
+ tm.getDeviceId();
tmSerial =
""
+ tm.getSimSerialNumber();
androidId =
""
+ android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid =
new
UUID(androidId.hashCode(), ((
long
)tmDevice.hashCode() <<
32
) | tmSerial.hashCode());
String deviceId = deviceUuid.toString();
结果可能类似 :00000000-54b3-e7c7-0000-000046bffd97
对我来说这种方式已经足够了
别忘了增加权限,用于读取 TelephonyManager properties,在manifest 中增加下面一行:
1
<
uses-permission
android:name
=
"android.permission.READ_PHONE_STATE"
/>
- Android能够获取到唯一的设备ID吗?
- Android 能够获取到唯一的设备 ID 吗?
- 获取Android设备的唯一 Android ID
- Android设备唯一标识ID的获取
- Android获取设备唯一ID的方法
- Android获取设备唯一ID
- Android 获取设备唯一ID
- Android获取设备唯一ID的几种方式
- Android获取设备唯一ID的几种方式
- Android获取设备唯一ID的几种方式
- Android获取设备唯一ID的几种方式
- Android开发获取唯一设备ID
- Android多种方法获取唯一设备id
- 如何获取设备唯一性的ID
- 如何获取 iOS 设备的唯一 ID
- 如何获取 iOS 设备的唯一 ID
- 如何获取 iOS 设备的唯一 ID
- 关于获取设备的唯一设备ID,MAC地址 IOS/Android问题
- Android DOM 解析
- VISUAL C++ 数据库开发-ADO
- 为什么苹果以前封闭就失败了,现在的苹果还是封闭的,它却成功了?
- Hibernate Tutorial
- 【初学】Objective-C学习笔记-Objectiv-C
- Android能够获取到唯一的设备ID吗?
- Twitter创始人Jack Dorsey的每日必做和不做清单
- CURL 远程网络服务器日志传输失败的错误代码列表
- 【GUI编程之准备--2】wxWidgets编写HelloWorld
- 内存对齐总结
- UITableViewController
- 方兴未艾的计算广告学——微软亚洲研究院高级研究员 刘铁岩
- Oracle 取前10条记录
- iOS多线程的初步研究(七)-- dispatch对象