将Android用户唯一标识到服务器的最佳方法是什么?

时间:2010-10-18 15:43:47

标签: android

我应该如何识别服务器的Android用户。 我应该获得IMSI号码和一些腌制算法吗? 考虑到机器人的空间和性能限制是否有一个不太重的库我可以用来进行计算?

4 个答案:

答案 0 :(得分:5)

我认为您无法识别没有任何帐户的用户。其他一切都不可靠或只是设备识别。为什么不为您的服务器提供自己的注册服务,因此您可以为每个用户提供唯一的ID。

另一种选择可能是绑定到设备的Google帐户?或者这会让你瞄准目标受众吗?但是,如果您正在构建一个扩展某种Google工具,应用程序或其他任何内容的应用程序,那么用户就已拥有Google帐户,因此您的应用也可以使用它来识别用户。

答案 1 :(得分:4)

developer.android所述:

应用程序通常会尝试使用以下三种技术之一来记住用户:

  1. 要求用户输入用户名
  2. 检索唯一的设备ID以记住设备
  3. 从AccountManager
  4. 检索内置帐户

    选项(1)存在问题。首先,要求用户在输入您的应用程序之前键入内容会自动使您的应用程序不那么吸引人。其次,无法保证所选用户名是唯一的。

    选项(2)对于用户来说不那么繁重,但要做到正确是很棘手的。更重要的是,它只允许您在一台设备上记住用户。想象一下升级到闪亮的新设备的人的沮丧情绪,却发现你的应用不再记得它们。

    选项(3)是首选技术。帐户管理器允许您获取有关用户设备上存储的帐户的信息。正如我们在本课中所看到的,使用帐户管理器可以让您记住您的用户,无论用户拥有多少设备,只需向您的用户界面添加几个额外的点击即可。

答案 2 :(得分:0)

在几个月内会有更多的用户拥有Android手机和Android平板电脑,所以如果你想在多个设备上跟踪用户,我认为最好使用OAuth。

答案 3 :(得分:0)

要识别用户,我认为使用Google帐户是最佳选择,请参阅答案 Generating Device-Specific Serial Number

如果您只想识别应用程序的实例,那么为什么不让服务器分发ID:s?

当您的应用启动时,获取SharedPreferences并检查“myid”是否有值,如果没有,则从服务器请求ID,您在SharedPreferences中存储为“myid”。此ID将在应用更新后生效(但不能卸载/重新安装)。

在服务器端,存储所有已注册的ID,并确保您的服务器分发唯一ID。这样,恶意攻击您的服务器的人就无法使用ID来识别您的用户;)