安全的Android ID长度? [英] Secure Android ID length?
问题描述
我正在使用以下代码获取android ID
I am using the below code to get the android ID
String android_id = Secure.getString(context.getContentResolver(),
Secure.ANDROID_ID);
我能够获取android ID,但是长度不是固定的.在某些手机中,我会得到16个长度的ID,而在另一些手机中,我会得到15个长度的ID.
I am able to get the android ID but it's length is not fixed. In some phones I get a 16 length ID and in other I get 15 length ID.
我在文档中读到它是一个64进制十进制数字,因此它应始终返回16位字符串.
I read in the documentation it is a 64 Hex decimal number so it should always return 16 digit string.
那么我在做错什么吗?
推荐答案
The following code snippet from AOSP shows how the ANDROID_ID is generated:
SecureRandom random = new SecureRandom();
String newAndroidIdValue = Long.toHexString(random.nextLong());
已知方法Long.toHexString
抑制前导零.因此,如果长度小于16,则在ANDROID_ID前面加上零应该是正确的方法,以获得完整的16位ANDROID_ID.
The method Long.toHexString
is known to suppress leading zeros. Therefore prepending the ANDROID_ID with zeros in case it's length is less than 16 should be to correct way to get a full 16 digits ANDROID_ID.
这篇关于安全的Android ID长度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!