【问题标题】:Secure Android ID length?安全的 Android ID 长度?
【发布时间】:2015-04-27 07:41:18
【问题描述】:

我正在使用下面的代码来获取 android ID

 String android_id = Secure.getString(context.getContentResolver(),
            Secure.ANDROID_ID);

我可以获取 android ID,但它的长度不固定。在某些手机中,我得到一个 16 长度的 ID,而在另一些手机中,我得到一个 15 长度的 ID。

我在文档中读到它是一个 64 位十六进制十进制数,因此它应该始终返回 16 位字符串。

那么我做错了什么吗?

【问题讨论】:

  • 可能是 Android 抑制了前导零?
  • 所以我应该在开头附加“0”。这会是正确的方法吗?

标签: android udid


【解决方案1】:

以下code snippet from AOSP 显示了ANDROID_ID 是如何生成的:

String androidId = Long.toHexString(new SecureRandom().nextLong());

已知方法Long.toHexString 可以抑制前导零。因此,如果 ANDROID_ID 的长度小于 16,则在 ANDROID_ID 前面加上零应该是获得完整 16 位 ANDROID_ID 的正确方法。

【讨论】:

    猜你喜欢
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多