如何在Android中获得唯一的设备硬件id?
如何在Android中获取在执行手机重置或操作系统更新时无法更改的唯一设备ID?更新:19-11-2019 下面的答案与今天的情况无关 因此,对于任何寻求答案的人,你都应该查看下面链接的文档如何在Android中获得唯一的设备硬件id?,android,Android,如何在Android中获取在执行手机重置或操作系统更新时无法更改的唯一设备ID?更新:19-11-2019 下面的答案与今天的情况无关 因此,对于任何寻求答案的人,你都应该查看下面链接的文档 旧答案-现在不相关。 您可以在下面的链接中查看此博客 机器人识别码 import android.provider.Settings.Secure; private String android_id = Secure.getString(getContext().getContentResolve
旧答案-现在不相关。 您可以在下面的链接中查看此博客 机器人识别码
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
以上内容来自@
更具体地说,是Settings.Secure.ANDROID_ID。这是设备首次启动时生成和存储的64位数量擦除设备时,它会重置
ANDROID\u ID似乎是唯一设备标识符的好选择。有缺点:首先,它在2.2之前的Android版本(“Froyo”)上不是100%可靠的。此外,在一家主要制造商生产的一款流行手机中,至少有一个广为观察到的bug,每个实例都有相同的安卓ID
下面的解决方案不是一个好的解决方案,因为该值在设备擦除(“工厂重置”)后仍然有效,因此,当您的一位客户擦除其设备并将其传递给另一个人时,您可能最终犯下严重错误
您可以使用以下命令获取设备的imei编号
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();
添加这是清单
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
请阅读谷歌开发者博客上的官方博客: 结论对于绝大多数应用,要求是 识别特定安装,而不是物理设备。 幸运的是,这样做很简单 有很多很好的理由可以避免尝试识别一个 特定设备。对于那些想尝试的人来说,最好的方法是 可能是在任何相当现代的东西上使用ANDROID_ID 针对遗留设备的一些回退启发式方法
.我使用以下代码获取Android id
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);
即使在手机重置或更新后,IMEI是否仍保持不变?手机的IMEI在制造点之后不应更改。我的评论说这不是一个相关的答案,他可能在网上找到了这个解决方案,或者已经实现了,因为stackoverflow本身已经存在很多线程。但他的问题是“唯一的设备ID,不能在手机重置或操作系统更新时更改”@Drc表示同意。说得好。因此,我的答案不是这方面的最佳解决方案case@KiranManiya是的,我明白。我会更新这篇文章。是的,ANDROID_ID很好,但根据文档:这是一个64位的数量,在设备首次启动时生成并存储。擦除设备时会重置。感谢回复。但ANDROID_ID在设备重置时更改。我想要的ID取决于h/w,在操作系统上不会更改。你知道我如何从手机直接获得该ID输出的相同ID吗?(例如,我想获得我刚刚输入的IMEI:*06#)android Id是唯一的吗?@AnixPasBesoin那么相同型号的设备将为您提供相同的值!只需尝试加载测试添加,成功加载后,您将在logcat中看到您的设备ID。