【发布时间】:2023-03-04 02:10:01
【问题描述】:
我有一个问题,我 5% 的用户多次注册到服务器。 这只能在全新安装时发生,因为我在开始时执行了一个简单的注册:(伪代码):
if(!SharedPrefs.contains(accessToken))
{
registerToServer(response -> {
SharedPrefs.save(response.accessToken);
SharedPrefs.save(); // commit, whatever
}
}
然后,我将他的设备 UUID 存储在服务器上。
如您所见,一个用户不能在同一设备上注册两次。他唯一能做的就是重新安装应用程序,因为 SharedPrefs 会被清除。
但是……
有些人注册了两次,三次甚至更多。我可以通过我的数据库中的 deviceID 过滤来看到这一点,并且我有多个具有相同 deviceID 的用户记录。
为了解决这个问题,我需要确保它不是某种机器人(例如 Google Play 发布前报告设备)。
问题
有什么方法可以获得某种唯一安装标识符,它只与同一个 Google Play 安装事件相同?
您可能会说,我可以使用 SharedPrefs 自己检查,存储某种 bool “firstInstall”,然后在新安装时将其擦除。 但我不能,因为我假设 SharedPrefs 在这些设备上启动应用程序时会以某种方式被清除。
这主要发生在一些 LG、三星 J5、“vivo vivo”、华为。
【问题讨论】:
-
只要将deviceID作为数据库的主键即可。
-
如果你通过设置进入应用,你可以通过删除应用数据来删除你的共享偏好
-
@SushilKumar DeviceID 作为主键不是解决方案。它只会隐藏问题。
-
@Ivan 我知道我可以。但是 5% 的用户这样做的概率是多少?为什么?!
-
你为什么不使用电子邮件登录(谷歌登录)或电话号码登录(facebook 的帐户工具包)?
标签: android unity3d installation google-play