问题:
在我的某个Android应用中,应允许用户更改我服务器上的文本数据(通过HTTP请求),而无需登录或注册。
为了防止垃圾邮件和滥用此功能,我想确定我的应用程序的单个安装,以便我可以“禁止”此安装。当然,滥用我的服务的用户可以卸载应用程序并再次下载或类似的东西。但这确实是一个障碍,使得滥用应用程序变得更加困难。
所以我必须找到一种识别Android设备或至少一次安装的方法。
如果可以阅读here或here Android手机的物理设备ID不是一个好的解决方案。那么我还能做些什么呢?
我的想法:
当应用程序第一次启动时,创建一个(几乎)唯一的当前时间戳的哈希值(可能是SHA-512)和一个巨大的随机数。然后将此值保存在内部存储上,并始终使用它来识别此设备或安装(在HTTP请求上)。
您如何看待这个解决方案?还有更好的方法吗?
这几乎是Android Developers Blog建议的,对吗?但他们真的在写内部存储吗?他们不使用建议here的openFileOutput()。
最后,一个可能有点愚蠢的问题:
如何使用Android开发者博客上显示的代码?我可以将该公共类添加到我的主要活动.java文件中吗?
非常感谢您提前! :)
答案 0 :(得分:1)
在我目前的Android项目中,我使用蓝牙mac id作为标识符,因为我读到的有关物理设备ID不可靠的内容。当然,我的应用程序非常专业,无论如何都需要蓝牙和互联网,所以这样做。
具体来说,我有办法从手机拨打我的网络服务器,传入蓝牙mac ID。我可以检查许可证状态(用于试用/过期),您可以在其中检查禁止方法以查看该ID是否被禁止。
由于我的应用程序需要蓝牙,这对我来说非常适合,因为[大部分]所有蓝牙mac id都应该是唯一的。
只是一个想法。