我通过以下代码获得 android id:
DeviceID = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
但是每次更新都会改变。获取它的方式是错误的,还是我可以使用任何不同的东西,永远不会改变并且每次都对同一设备保持唯一性?
我通过以下代码获得 android id:
DeviceID = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
但是每次更新都会改变。获取它的方式是错误的,还是我可以使用任何不同的东西,永远不会改变并且每次都对同一设备保持唯一性?
通常不鼓励仅链接答案,但在这种情况下我看不到替代方案,因为该文章非常深入并涉及各种不同的 API 级别。
请参阅文档以了解处理此问题的正确方法(根据 Google):
http://developer.android.com/training/articles/user-data-ids.html
不幸的是,没有任何东西符合您的要求。
当谈到 Android 设备的唯一标识符时,有很多不同的选项,但没有一个是 100% 保证工作的。而且,要获得其中的大多数需要向用户请求令人讨厌的权限。
我可以建议两个选项:
改用那个hardwareID
,那个不应该改变那么多......
这是要试用的代码:
/**
* Returns the embedded <i>hardwareID</i>
* @param context which {@link Context} to use
* @return the hardwareID
*/
public static String getHardwareId(Context context) {
return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
}