Java Android及其可靠性
我想为我的应用程序生成Uuid,所以我尝试了很多方法 1) 使用android.os.Build.Serial获取设备序列号(结果返回“未知”) 2) 处理设备id(我不知道如果是平板电脑设备,它会返回什么) 3) 使用Java Android及其可靠性,java,android,security,encryption,uuid,Java,Android,Security,Encryption,Uuid,我想为我的应用程序生成Uuid,所以我尝试了很多方法 1) 使用android.os.Build.Serial获取设备序列号(结果返回“未知”) 2) 处理设备id(我不知道如果是平板电脑设备,它会返回什么) 3) 使用Android.provider.Settings.Secure.Android\u id获取安卓id(安卓2.2版本似乎有问题) 4) 使用java.util.Uuid 5) 使用android.os.Buildproperties生成伪Uuid 所有这些方法都显示出一些问题。
Android.provider.Settings.Secure.Android\u id
获取安卓id(安卓2.2版本似乎有问题)
4) 使用java.util.Uuid
5) 使用android.os.Build
properties生成伪Uuid
所有这些方法都显示出一些问题。所以我不知道该选哪一个?有人能给我推荐最好的方法吗
表示android id将是唯一的
我还听说设备的安卓id可以在工厂重置或操作系统更新时更改
那么,在工厂重置或操作系统更新期间,是否有可能复制新的android id
注:假设一个条件
我的问题是,在恢复或操作系统更新的情况下,相同制造商的相同2设备型号会发生什么。Android id会改变。我在问这个新的id。两台设备上的android id是否有相同的机会?为android设备创建唯一的id已经在这篇简短的使用文章中进行了生动的讨论
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
是的,有可能会有重复的ID,但可以忽略不计 ANDROID_ID有2^64个可能的值,它们是通过一些随机函数生成的。但是,您不太可能看到重复的值-搜索有关GUID唯一性的讨论以获取要点
简而言之:您可以假设ANDROID_ID是唯一的。每次初始化设备时(重置后等),都会生成
ANDROID_ID
。它不依赖于型号、序列号等。即使您有两台相同的设备,它们的ANDROID
在重置后也应该不同。ID不是特别的,只是它是设备的全局ID。您可以通过应用程序的UUID实现同样的功能 我知道如何创建安卓id。我的问题是,在恢复或操作系统更新的情况下,相同制造商的相同2设备型号会发生什么。Android id会改变。我在问这个新身份证。android id在这两款设备中是否有相同的机会?android_id是否适用于所有android设备,包括平板电脑和CDMA设备(我知道它是第一次启动操作系统时生成的,所以ANDROID_ID会出现。不过我只是想保证这一点。我已经用2-3台手机设备进行了检查,不幸的是,我没有机会用平板电脑进行测试)我知道它是在第一次初始化设备时生成的。我只想知道除了电话和CDMA(它像收音机一样工作。我无法用这些设备进行测试)以外的所有设备是否都是相同的。它不取决于设备型号或收音机功能。然而,一些早期的手机(由Motorola,IIRC提供)拥有相同的ID和一些返回值null
。现在应该更新大部分内容,但您可能希望以防万一处理它。或者只使用您自己的UUID。您的最终目的是什么,为什么要使用ANDROID\u ID?编辑注意:请不要引入额外的键入:)或更改句子的含义。