Android and Java Uuid

我们两清 提交于 2019-12-14 03:55:21

问题


I want to generate a uuid for my app i tried many things like wifi mac address , getting android id, serial number , creating pseudo uuid from device android.os.Build properties .

i also came to know that java itself got Uuid creator class java.util.UUID

by going through several articles and blogs i am little confused about this . i want to know that if two android device are creating uuid using this java class(java.util.UUID) will that be unique or is there any chance for duplication?

Also in some devices i was not able to find serial number using android.os.Build.SERIAL . is there alternative way to get serial number of device


回答1:


Assuming you're using the java.util.UUID's randomUUID() function there's a theoretical chance of duplication, but it's incredibly remote. The ids generated are RFC4122 version-4 ids, which have 122 bits randomly set. That means there are 5.32 x 10^^36 possible values. For some perspective on that, if you had a billion devices, each generating a billion IDs per second, it would take roughly 168 billion years for them to finish (~10X the age of the universe).

So, yes, duplication is possible, but (assuming Java is using a high quality random number generator), the odds of it actually happening are so remote as to be meaningless.




回答2:


to Get Device ID Use Telephoney U can use it here is it is

public static String deviceUDID(Context ctx) {
     final TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);

     final String tmDevice, tmSerial, androidId;
     tmDevice = "" + tm.getDeviceId();
     tmSerial = "" + tm.getSimSerialNumber();
     androidId = "" +android.provider.Settings.Secure.getString(ctx.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

     UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());
     String deviceId = deviceUuid.toString();
     Log.d("Device Id", deviceId);
     return deviceId;
} 


来源:https://stackoverflow.com/questions/13945849/android-and-java-uuid

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!