安全 Android ID 长度?

Secure Android ID length?

我正在使用以下代码获取 android ID

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

我可以获得 android ID,但它的长度不固定。在某些手机中,我得到 16 位长度的 ID,而在其他手机中,我得到 15 位长度的 ID。

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

我是不是做错了什么?

下面的code snippet from AOSP展示了ANDROID_ID是如何生成的:

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

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

的正确方法