Android应用程序应在发布1个月后过期
我的android应用程序应该在发布后只工作一个月。怎么办?检查当前日期并计算过期日期。这应该很简单,只需读取第一次启动的日期并存储它,然后将每个后续启动的日期与存储的日期进行比较,如果大于x天,则弹出一个消息框,说明应用程序已过期 还是我遗漏了什么Android应用程序应在发布1个月后过期,android,Android,我的android应用程序应该在发布后只工作一个月。怎么办?检查当前日期并计算过期日期。这应该很简单,只需读取第一次启动的日期并存储它,然后将每个后续启动的日期与存储的日期进行比较,如果大于x天,则弹出一个消息框,说明应用程序已过期 还是我遗漏了什么 /托尼改用警报接收器,并在警报过期时广播。 , 这里还有一个教程 只需添加更多相关代码即可: 使用SharedReferences存储首次启动的日期 获取每次启动的日期-可用于示例date.currentTimeMillis()-并计算是否已过1
/托尼改用警报接收器,并在警报过期时广播。 ,
这里还有一个教程 只需添加更多相关代码即可:
- 使用
存储首次启动的日期SharedReferences
- 获取每次启动的日期-可用于示例
-并计算是否已过1个月date.currentTimeMillis()
- 请看问题,它有一个很好的答案
我会告诉你我的审判经验。起初,我试着只使用手机上的日期,但后来意识到,如果他们卸载并重新安装,这可以绕过。这可以通过将安装日期存储在文件系统的某个位置(隐藏)来解决,但是如果用户擦除数据或找到文件会发生什么情况
我还尝试在任何地方(可能是您的www站点?)的服务器上检查日期/时间,但这会对您的应用程序施加限制,因为它们必须具有internet。很快我意识到需要更好的许可证管理,所以使用了最后一个解决方案
最后一个解决方案是设置服务器。您可以使用设备的唯一ID(无论您选择哪一个-我使用Bluetooth MAC ID,因为我的应用程序也需要Bluetooth),将其发送到服务器以检查用户是否有试用版,如果没有,我会发给他们一个,如果有,我会检查有效期。现在我完全可以控制审判何时到期。由于我的应用程序是一个在现场使用的商业应用程序,如果潜在买家需要一周的时间,这是非常方便的
最后一个解决方案的唯一问题是,如果您计划发布到市场,您必须使用他们的支付系统
祝你好运 如果您担心设备上的数据(而且您应该担心!除非您对其进行加密),您可以将数据保存在服务器上,并在每次启动时检索数据 另一方面,如果应用程序破解者让你担心,dalvik字节码现在可以使用dedexter或smali轻松反转,使用apktools和jarsigner,你实际上可以找到保护的位置,改变一些跳跃,用NOP填充代码的其余部分,使其保持一致,并将其上传到他们共享的一些饼干市场。所以这对你帮助不大。 如果你用proguard混淆了你的代码,你可以让他们的生活变得艰难,但这会让他们慢下来,不会阻止他们 如果你的应用程序是基于web的,这意味着用户需要从你那里获取服务器数据,请为将从服务器接收的注册用户创建一个密钥(你可以基于他们的私人详细信息+IMEI),并使用该密钥验证你的请求,如果你从客户端获得错误的密钥,请拒绝请求。 这也不是100%的证据,因为请求可能是伪造的,有人可能会抓取其他人的IMEI和密钥并面对所有请求
欢迎来到破碎的软件拷贝保护世界:-)这是正确的方法吗?如果用户更改了设备的日期???如果我颠倒了你的代码,让应用程序每月生成新的BT号码怎么办?那么我的应用程序仍然做它应该做的事情:阻止简单的解决方法。如果有人决心绕过审判,那么我对此无能为力。最后,任何系统都可能被“黑客”入侵,但真的值得花时间节省几美元吗?另外,我的应用程序非常专业,而且用户有钱:)。+1这是一种更简单有效的方法。有效的意思是它将对大多数用户产生预期的效果。