1

我通过以下代码获得 android id:

DeviceID = Secure.getString(this.getContentResolver(),
                    Secure.ANDROID_ID);

但是每次更新都会改变。获取它的方式是错误的,还是我可以使用任何不同的东西,永远不会改变并且每次都对同一设备保持唯一性?

4

3 回答 3

0

通常不鼓励仅链接答案,但在这种情况下我看不到替代方案,因为该文章非常深入并涉及各种不同的 API 级别。

请参阅文档以了解处理此问题的正确方法(根据 Google):

http://developer.android.com/training/articles/user-data-ids.html

于 2016-02-03T15:00:30.743 回答
-2

不幸的是,没有任何东西符合您的要求。

当谈到 Android 设备的唯一标识符时,有很多不同的选项,但没有一个是 100% 保证工作的。而且,要获得其中的大多数需要向用户请求令人讨厌的权限。

我可以建议两个选项:

  1. 使用 Google 广告 ID - 每个设备都是唯一的,并且只有在用户手动重置它时才会更改。提取它不需要额外的权限。
  2. 您可以自己为每个设备生成一个唯一密钥(使用 UUID 之类的东西)并将其存储在设备上(共享首选项、文件、数据库......)。
于 2016-02-03T15:04:49.920 回答
-3

改用那个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);
}
于 2016-02-03T15:02:12.040 回答