应用程序生成UUID?

3
我想我需要更深入地了解UUID的工作原理。我正在开发一个应用程序,我希望该应用程序在用户下载和运行应用程序时生成UUID。是否可以每次用户下载应用程序时生成新的uuid?
这里有一个链接http://developer.android.com/reference/java/util/UUID.html ,你可以在android developer之外的另一个网站上查看或了解使用UUID的例子吗?谢谢。

这个帖子应该能回答你的问题。 - mkso
好的,这篇文章非常棒,我正在阅读代码,但是我有些难以理解文件实际上在哪里写入UUID。它是被写入到“安装”文件夹中吗? - The Tokenizer
2个回答

13
UUID uuid = UUID.randomUUID();

这将为你生成一个随机 UUID,你可以根据自己的需要使用它。


我希望三年前就有这个答案。现在我有了,谢谢。 - The Tokenizer
哈哈,我其实是来这个帖子找答案的,然后偶然在Android开发者文档中发现了.randomUUID(),于是想在这里发布一下。很可能这是SDK的较新版本中出现的内容。 - Marc Davies
每次调用此函数,它都会生成一个随机的UUID。最好只调用一次并存储它返回的值。 - Marc Davies

4

以下是生成UUID的代码:

String android_id = Secure.getString(getApplicationContext()
            .getContentResolver(), Secure.ANDROID_ID);
    Log.i("System out", "android_id : " + android_id);

    final TelephonyManager tm = (TelephonyManager) getBaseContext()
            .getSystemService(Context.TELEPHONY_SERVICE);

    final String tmDevice, tmSerial, androidId;
    tmDevice = "" + tm.getDeviceId();
    Log.i("System out", "tmDevice : " + tmDevice);
    tmSerial = "" + tm.getSimSerialNumber();
    Log.i("System out", "tmSerial : " + tmSerial);
    androidId = ""
            + android.provider.Settings.Secure.getString(
                    getContentResolver(),
                    android.provider.Settings.Secure.ANDROID_ID);

    UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice
            .hashCode() << 32)
            | tmSerial.hashCode());
    String UUID = deviceUuid.toString();
    Log.i("System out", "UUID : " + UUID);

我会在tm上添加null检查,因为getSystemService可能会在特定设备上返回null,如果请求的服务不存在。 - mar3kk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接