在安装应用程序时在Android中生成持久应用程序UUID

在安装应用程序时在Android中生成持久应用程序UUID,android,sharedpreferences,uuid,Android,Sharedpreferences,Uuid,我需要区分我的应用程序的安装,以便通过java.util.UUID.randomUUID()在我的应用程序中生成UUID,然后将其保存为共享首选项中的字符串。但是,当我转到手机设置、管理应用程序、单击我的应用程序并按“清除数据”时,下一次我的应用程序运行时,会生成一个新的UUID。我相信这是因为以前的共享pref已被删除 是否有一种方法可以让我创建一个UUID,即使在设置中按下“清除数据”键,该UUID在安装应用程序的过程中也会一直存在?清除数据将清除应用程序空间中的所有文件和数据库。保存持久数

我需要区分我的应用程序的安装,以便通过
java.util.UUID.randomUUID()
在我的应用程序中生成UUID,然后将其保存为共享首选项中的
字符串。但是,当我转到手机设置、管理应用程序、单击我的应用程序并按“清除数据”时,下一次我的应用程序运行时,会生成一个新的UUID。我相信这是因为以前的共享pref已被删除


是否有一种方法可以让我创建一个UUID,即使在设置中按下“清除数据”键,该UUID在安装应用程序的过程中也会一直存在?

清除数据将清除应用程序空间中的所有文件和数据库。保存持久数据的一个好方法是在SD卡中创建自己的私有文件夹,创建一个保存此UUID的文件。这也不是万无一失的,因为用户可能会从SD卡中删除文件夹。您甚至可以通过在文件名上加一个点来创建不可见文件夹或不可见文件。

清除数据将清除应用程序空间中的所有文件和数据库。保存持久数据的一个好方法是在SD卡中创建自己的私有文件夹,创建一个保存此UUID的文件。这也不是万无一失的,因为用户可能会从SD卡中删除文件夹。您甚至可以通过用点处理文件名来创建不可见的文件夹或不可见的文件。

我不知道Android文件系统,所以是否有一个文件夹可以建议我在其中编写单独的文件?您可以这样做,file f=new file(Environment.getExternalStorageDirectory()+“/folder”);f、 mkdirs();这将创建一个新文件夹,然后创建一个文件并写入其中。你需要代码吗?我可以在这里提供这很棘手,对吧?因为手机或平板电脑上可能没有外部存储设备。可能是内部存储?Android总是提供一个名为/sdcard/的分区,尽管可能没有连接外部存储。文件系统已分区,因此所有应用程序都可以通过使用权限WRITE_EXTERNAL_storage查看此空间。卸载过程中不会删除此文件。因此,您需要找到一种方法来确定它是否是最新的。我不知道Android文件系统,所以是否有一个文件夹可以建议我在其中编写单独的文件?您可以这样做,文件f=新文件(Environment.getExternalStorageDirectory()+“/folder”);f、 mkdirs();这将创建一个新文件夹,然后创建一个文件并写入其中。你需要代码吗?我可以在这里提供这很棘手,对吧?因为手机或平板电脑上可能没有外部存储设备。可能是内部存储?Android总是提供一个名为/sdcard/的分区,尽管可能没有连接外部存储。文件系统已分区,因此所有应用程序都可以通过使用权限WRITE_EXTERNAL_storage查看此空间。卸载过程中不会删除此文件。所以你需要找到一种方法来确定它是否是最新的。你为什么不使用手机IMEI码呢?这样,您可以以独特的方式识别设备。如果设备没有3G或4G,IMEI代码实际上将不存在,如中所述。为什么不使用手机IMEI代码?通过这种方式,您可以以独特的方式识别设备。如果设备没有3G或4G,IMEI代码实际上将不存在,如中所述。