我的Android应用程序在发布后应该只工作1个月。怎么办?
答案 0 :(得分:3)
请参阅this问题,它有一个很好的答案。
我会告诉你我的试验经验。起初我尝试在手机上使用日期,但后来意识到如果他们卸载并重新安装,这可以被绕过。这可以通过将安装日期存储在文件系统的某个位置(隐藏)来解决,但是如果用户擦除数据或找到文件会发生什么?
我还尝试在任何地方检查服务器上的日期/时间(也许是您的www网站?),但这会对您的应用程序施加限制,因为它们必须具有互联网。很快我意识到需要更好的许可证管理,因此使用了最后的解决方案。
最后一个解决方案是设置服务器。您可以使用设备的唯一ID(无论您选择哪个 - 我使用蓝牙MAC ID,因为我的应用程序也需要蓝牙),发布到服务器以检查用户是否有试用,如果不是我发出一个,如果他们这样做,我检查到期。现在我可以完全控制试验何时到期。由于我的应用程序是在现场使用的商业应用程序,如果潜在买家需要另一周,这非常方便。
最后一个解决方案的唯一问题是,如果您计划向Market发布,则必须使用其支付系统。
祝你好运!答案 1 :(得分:2)
只是添加一些与代码相关的内容:
SharedPreferences
在首次启动时存储日期Date.currentTimeMillis()
- 并计算是否已过去1个月答案 2 :(得分:1)
检查当前日期并计算到期日期。
答案 3 :(得分:1)
这应该很简单,只需在第一次启动时读取日期并存储它,然后将每次后续启动的日期与存储的日期进行比较,如果它大于x天,则弹出一条消息框说该应用程序已过期。
或者我错过了什么?
/托尼
答案 4 :(得分:1)
改为使用警报接收器,并在过期时进行广播。 http://developer.android.com/reference/android/app/AlarmManager.html,
这是一个教程TOO .. http://moazzam-khan.com/blog/?p=157
答案 5 :(得分:1)
如果您担心设备上的数据(除非您加密,否则应该!)您可以将数据保存在服务器上并在每次启动时检索它。
另一方面,如果应用程序破解者担心你,今天的dalvik字节代码很容易使用dedexter或smali来反转,而使用apktools和jarsigner,你实际上可以找到保护更改一些跳转的地方,填写其余的代码nops保持一致并辞职,将其上传到他们共享的一些破解者市场。所以它不会帮助你太多。 如果你用proguard混淆你的代码,你可以为他们的生活变得艰难,但它会减慢他们的速度,不会阻止他们。
如果您的应用是基于网络的,这意味着用户需要从您那里获取服务器数据,请为将从服务器接收的注册用户创建密钥(您可以将其基于其私人详细信息+ IMEI)并验证你的请求,如果你错了\没有来自客户的密钥拒绝请求。 它不是100%证明,因为请求可能是假的,有人可以抓住别人的IMEI和密钥并面对所有请求。
欢迎破解软件拷贝保护世界: - )