我有一个为网络应用创建帐户的应用,它基本上是从网络发送和接收短信。这就是它的工作原理(尚未发布,接近我计划的首发版功能的结尾):
用户购买了该应用。 用户输入他们的姓名,电子邮件和密码。 该帐户在服务器端创建,并显示最终视图,告知用户访问Web应用程序的位置。 打开后台进程(C2DM和ContentObserver for SMS)。
一切顺利。这个应用程序的Android部分都完美无缺,但我害怕人们从一次购买多个帐户。我怎么能阻止这种情况发生?谈到这个问题我很无能为力。首先,当显示最终视图时,用户可以回击然后重新创建另一个帐户。我怎样才能阻止他们再次进入那种形式?我想我可以设置一个SharedPreference,但是所有用户必须做的另一个帐户是卸载应用程序,然后重新安装它,然后bam另一个帐户。
我需要一种方法,因此一旦用户首次注册,他们就无法再在该特定手机(或特定的Google帐户)上注册。有没有真正的方法来实现这一目标?感谢任何帮助,当涉及到这个主题时,我感到困惑。
答案 0 :(得分:0)
我会在服务器端进行检查。 每个设备都有唯一的标识符。如果您在创建帐户期间将其保存在网络服务器端,则可以检查是否已在此设备上创建帐户。同样添加相同的Google ID检查,以防万一。
String android_id = Secure.getString(getBaseContext().getContentResolver(),
Secure.ANDROID_ID);
可能值得一试。你最安全的赌注将永远是服务器端的东西,因为如果人们真的想要,设备方面很容易调整。
答案 1 :(得分:0)
由于SIM识别功能( getSimSerialNumber )在CDMA设备上返回 null ,并且* ANDROID_ID *在CDMA设备上被认为是相同的值;如果添加了没有这些平板电脑的平板电脑,我强烈建议您在数据库中实施自己的唯一标识符,并将其与用户的Google帐户相匹配。
但是,由于poweruser可以随时重置他们的应用数据存储并从设备中清除他们的身份(因此在应用启动时使您的应用会话在设备上全新推出),这种做法有一些警告。
您可能需要查看此博客帖子,了解有关生成唯一ID的建议
http://android-developers.blogspot.com/2011/03/identifying-app-installations.html