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); |
请阅读谷歌开发者博客上的官方博客: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
.