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

How to get unique device hardware id in Android?

本问题已经有最佳答案,请猛点这里访问。

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


您可以在下面的链接中查看此日志

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

雄蛛科

1
2
3
4
import android.provider.Settings.Secure;

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

上面的链接@是否有唯一的Android设备ID?

更具体地说,settings.secure.android_id。这是一个64位的数量,在设备首次启动时生成并存储。当设备被擦除时,它会被重置。

对于唯一的设备标识符,Android_id似乎是一个不错的选择。有缺点:首先,它在2.2之前的Android版本("froyo")上不是100%可靠的。此外,在一个主要制造商的流行手机中,至少有一个被广泛观察到的bug,每个实例都有相同的安卓ID。

下面的解决方案不是一个好的解决方案,因为这个值可以使设备擦除("工厂重置")存活下来,因此当您的一个客户擦除设备并将其传递给另一个人时,您最终可能会犯一个严重的错误。

您可以使用下面的

1
2
  TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  telephonyManager.getDeviceId();

http://developer.android.com/reference/android/telephony/telephonyManager.html_getdeviceid%28%29

添加此清单

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


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

1
2
3
4
String android_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);

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

enter image description here


请阅读谷歌开发者博客上的官方博客:http://android-developers.blogspot.be/2011/03/identifying-app-installations.html

Conclusion For the vast majority of applications, the requirement is
to identify a particular installation, not a physical device.
Fortunately, doing so is straightforward.

There are many good reasons for avoiding the attempt to identify a
particular device. For those who want to try, the best approach is
probably the use of ANDROID_ID on anything reasonably modern, with
some fallback heuristics for legacy devices

.