2

我想为我的应用程序生成 Uuid,所以我为此尝试了很多方法。

1)获取设备的序列号使用android.os.Build.SERIAL(这将返回“未知”作为结果)

2)处理设备ID(我不知道平板设备会返回什么)

3)使用获取Android id android.provider.Settings.Secure.ANDROID_ID(android 2.2版本似乎有些问题)

4)使用生成Uuidjava.util.UUID

android.os.Build5)使用属性生成伪Uuid

所有这些方法都显示出一些问题。所以我很困惑该选择哪个?有人可以建议我最好的方法吗?

Android 开发者博客说 android id 将是唯一的

另外我听说可以在出厂重置或操作系统更新时更改设备的 Android id。

那么在工厂重置或操作系统更新期间是否有可能复制新的android id?

注意:假设一个条件

我的问题是会发生什么相同制造的相同 2 设备型号将进行还原或操作系统更新。Android id 将更改。我在问这个新身份证。两个设备中的android id是否有机会相同?

4

3 回答 3

1

是的,有重复 ID 的可能性,但可以忽略不计。

ANDROID_ID 有 2^64 个可能的值,它们是用一些随机函数生成的。但是,您很少会看到重复的值 - 搜索有关 GUID 唯一性的讨论以了解重点。

简而言之:您可以假设 ANDROID_ID 是唯一的。

于 2012-12-19T09:03:39.723 回答
1

ANDROID_ID每次初始化设备时都会生成(在重置后等)。它不依赖于型号、序列号等。即使你有两个相同的设备,它们ANDROID_ID的重置后的值也应该不同。ID 不是特别特殊,只是它对设备来说是全局的。您可以使用应用程序的 UUID 实现相同的目的。

于 2012-12-19T09:03:51.267 回答
0

为 android 设备创建唯一 id 已在此链接中进行了生动的讨论。简而言之,使用它。

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID);
于 2012-12-19T08:15:27.460 回答