如何在Android中获取唯一的设备硬件ID?

时间:2013-06-01 05:38:39

标签: android

如何在Android中获取在执行手机重置或操作系统更新时无法更改的唯一设备ID?

3 个答案:

答案 0 :(得分:149)

您可以在以下链接中查看此博客

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

ANDROID_ID

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                    Secure.ANDROID_ID); 

以上内容来自@ Is there a unique Android device ID?

链接

更具体地说,是Settings.Secure.ANDROID_ID。这是在设备首次启动时生成并存储的64位数量。 擦除设备时会重置

ANDROID_ID似乎是唯一设备标识符的不错选择。有一些缺点:首先,它在2.2之前的Android版本(“Froyo”)上并非100%可靠。此外,在主要制造商的流行手机中至少有一个被广泛观察到的错误,其中每个实例都具有相同的ANDROID_ID。

下面的解决方案并不是一个好的因素设备擦除后存活的价值(“工厂重置”),因此当您的一个客户擦拭设备并将其传递给另一个设备时,您最终可能会犯一个令人讨厌的错误人

您可以使用以下

获取设备的imei号码
  TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  telephonyManager.getDeviceId();

http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

添加这是清单

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

答案 1 :(得分:24)

我使用以下代码获取Android ID。

String android_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);

Log.d("Android","Android ID : "+android_id);

enter image description here

答案 2 :(得分:2)

请在Google开发者博客上阅读此官方博客文章: http://android-developers.blogspot.be/2011/03/identifying-app-installations.html

  

结论对于绝大多数应用程序,要求是   识别特定安装,而不是物理设备。   幸运的是,这样做很简单。

     

有许多充分的理由可以避免尝试识别   特定设备。对于那些想要尝试的人来说,最好的方法是   可能是在任何合理现代的东西上使用ANDROID_ID   遗留设备的一些后备启发式算法