如何在Android中获得独特的设备硬件ID?

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

你在下面的链接中查看这个博客

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); 

以上是从链接@ 有没有一个独特的Android设备ID?

更具体地说,Settings.Secure.ANDROID_ID。 这是设备第一次启动时生成并存储的64位数量。 当设备被擦拭时,它被重置

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

下面的解决scheme并不是一个好的方法,因为这个价值可以让设备擦拭(“工厂重置”)成为可能,因此当您的客户擦拭设备并将其传递给另一个人时,您可能会犯下一个糟糕的错误

您可以使用以下方式获取设备的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"/> 

我使用下面的代码来获取Android ID。

 String android_id = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID); Log.d("Android","Android ID : "+android_id); 

在这里输入图像描述

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

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

避免识别特定设备的尝试有很多很好的理由。 对于那些想要尝试的人来说,最好的方法可能是在任何合理的现代化的情况下使用ANDROID_ID,而对传统设备进行一些回退启发式

我们可以通过使用String id = android.os.Build.ID;轻松获取设备ID String id = android.os.Build.ID;