2010-10-18 76 views
12

我应该如何去识别一个android用户到服务器。 我应该得到IMSI号码和一些腌制算法吗? 考虑到Android的空间和性能限制,有没有一个库可以用来计算吗?将Android用户唯一标识到服务器的最佳方式是什么?

+2

你想识别_device_到服务器还是_user_? – Blrfl 2010-10-18 15:49:25

+0

这可能是http://stackoverflow.com/questions/3464881/generating-device-specific-serial-number和http://stackoverflow.com/questions/3679120/uniquely-identify-an-android-handset 。请注意,有些人建议使用IMEI - 这对手机来说是好的,但wifi平板电脑等设备没有IMEI。 – 2010-10-18 15:50:47

+1

另一个问题是关于使用哪个ID。我还要求处理私人信息的正确方法。 – Christian 2010-10-18 15:56:28

回答

0

在几个月内,更多用户将拥有Android手机和Android平板电脑,因此如果您想通过多个设备跟踪用户,最好使用我认为的OAuth。

5

我想你不能识别没有任何帐户的用户。其他一切都不可靠或只能作为设备标识。你为什么不提供自己的服务器注册服务,所以你可以给每个用户一个唯一的ID。

另一种选择可能是绑定到设备的Google帐户?或者这会削减你的目标观众吗?但是,如果您正在构建扩展某种Google工具,应用或其他任何应用的应用,则用户将拥有Google帐户,这样您的应用也可以使用它来识别用户。

0

要确定我应该使用谷歌帐户是最好的选择觉得用户,请参阅 Generating Device-Specific Serial Number

答案如果您只是想确定你的应用程序的实例,那么为什么不让服务器分发ID :■?

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

在服务器端,存储所有注册的ID,并确保您的服务器分配唯一的ID。这样一来,讨厌的人黑客攻击你的服务器不能使用的ID来识别用户;)

3

如前所述通过developer.android

应用程序通常会尽量记住使用三个技术用户:

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

选项(1)有问题。首先,要求用户在输入应用程序之前键入内容,会自动降低您的应用程序的吸引力。其次,不能保证所选的用户名是唯一的。

选项(2)对于用户而言不那么繁重,但要正确使用则很困难。更重要的是,它只允许您在一台设备上记住用户。想象一下,如果某个人升级到闪亮的新设备,只会发现您的应用不再记住他们,这会让他们感到沮丧。

选项(3)是首选技术。帐户管理器可让您获取有关存储在用户设备上的帐户的信息。正如我们在本课中将会看到的那样,使用帐户管理器可以让用户记住用户,无论用户拥有多少设备,只需在用户界面中添加多个轻按即可。

+4

复制内容时,请提及来源。在这种情况下,这将是http://developer.android.com/training/id-auth/identify.html – laalto 2013-05-27 07:30:14

+1

谢谢,从现在开始照顾它 – anon 2013-05-27 09:38:38

+0

如果您正在编写选项C仍然是最佳选择iOS的相同应用程序?或者会像生成一个唯一的ID服务器端存储在手机上的东西,如用户的电话号码(用户输入电话号码,服务器发回一个存储在手机上的uid)?我在尝试解决完全相同的问题时发现了这一点。 – 2013-06-05 05:50:57

相关问题