重新安装应用程序时,每个Android应用程序是否都有唯一的ID?有些人对Android应用程序说Application Id = Package Name
但我需要一个唯一的标识符来跟踪应用程序。
编辑:我需要的不是包名称,因为尽管包名称对于应用程序是唯一的,但它并不是设备/用户所独有的。例如,我的应用程序的包名称为com.example.myapp
,它与拥有该应用程序的每个设备相同。然而,当我重新安装应用程序时,它不会改变。
答案 0 :(得分:1)
我对其中一个应用程序有类似的要求。我所做的是,只要应用程序在安装后第一次运行,它就连接到我的服务器并请求一个新的唯一ID。它与身份验证过程类似,但它会在首次启动应用时自动运行。
此外,还有一件事你可能会觉得有用。有 Linux用户ID 这样的东西,它对每个应用程序安装都是唯一的。
在安装时,Android会为每个程序包提供不同的Linux用户ID。 在整个包裹的生命周期中,身份保持不变 在那台设备上。在不同的设备上,同一个包可能有一个 不同的UID;重要的是每个包都有一个独特的UID 给定的设备。
答案 1 :(得分:1)
如果您希望在重新安装应用时更改,最好在您的应用中创建UUID并将其保存在SharedPreferences
中。然后,每次需要此标识符时,您需要检查SharedPreferences
。如果存在,请使用它,如果不重新生成并保存。
这种方法的唯一缺点是,如果用户在应用上执行clear data
,则此ID将丢失。如果在这种情况下不丢失它很重要,您可以将其保存在文件中,以便只删除应用程序时删除。
除此之外,你可以使用androidId
,即使重新安装应用程序也大致保持不变,这是一种更好的方法来独特地跟踪每个安装,尽管它有一些细节需要注意specially on android oreo
。
答案 2 :(得分:1)