我希望能为每个安装应用的用户分配唯一的ID,这样每当应用与服务器通信时,我就知道是谁在联系我。
为此,我想在首次安装时,应用会联系服务器并获取唯一的ID。但我不知道在哪里永久存储该ID,以便下次启动应用程序时,它知道自己的ID,而无需再次联系服务器。
抱歉如果这是一个显而易见的问题,因为我是新手。
这个问题在Stack Overflow上已经被问了很多次。
简而言之:Android一直支持唯一的ID。但是,在Android 2.2之前,某些类型的手机上的ID并不总是相同的。由于现在2.2已经非常普及,我会使用那个ID。
Android开发者博客有一篇好文章介绍了这个问题。
正如Joachim所说,您可能需要考虑完全不同的方法。 Android的唯一ID很好,并且在恢复出厂设置后仍然有效,但在设备升级后无效。还要记住,许多人有多个设备(如手机和平板电脑)。您可能需要改用Google帐户,AccountManager
可以帮助您实现。
对于唯一标识符,您可以使用将安装应用程序的设备的IMEI。请参阅this link以了解如何获取IMEI号码。然后将该IMEI号码存储在共享首选项中。请参考Guillermo lobar的链接。当您的应用程序启动时,需要在首选项中检查该唯一标识符。在第一次使用时,请将其保存在首选项中。因此,当下一次检查该ID时,应用程序会在首选项中找到它,因此无需连接服务器。 :)
您可以获取设备的IMEI。从API 26开始,getDeviceId()已被弃用。如果您需要获取设备的IMEI,请使用以下方法:
String deviceId = "";
if (Build.VERSION.SDK_INT >= 26) {
deviceId = getSystemService(TelephonyManager.class).getImei();
}else{
deviceId = getSystemService(TelephonyManager.class).getDeviceId();
}