我被要求对我写过的Android应用程序的一些评论副本,这很好,但我不愿意向所有人提供完整的应用程序。我想制作一个有时间限制的版本(有效期约两周,然后放弃鬼魂)。
最简单的方法是什么?我自己没有对此进行过测试,但我认为理论上如果使用一个在两周后到期的密钥库构建应用程序可能会有效。这是正确的,还是我必须在应用程序中放置一行代码,如果您在设定的日期之后尝试启动它,会将其关闭?
答案 0 :(得分:4)
安装应用程序后未检查密钥库;只有在安装时才会验证日期。
我想你必须加入自己的时间限制代码。虽然如果你想变得非常偏执,你可以考虑用户可以改变他们设备的时钟。
或者,您可以进行在线检查(根据服务器上的时间),或者让您分发的每个APK都嵌入一个单独的令牌,并对您的服务器进行验证。
答案 1 :(得分:3)
我有一个最简单的建议,如果评论员购买了该应用程序,您退还了付款?
答案 2 :(得分:2)
我只想到一个很酷的方法来做到这一点。 您制作应用程序的Beta版本,并且可以定义测试人员组,您只需要该人员的电子邮件地址,或者他们可以请求访问的G +社区,然后将其添加到Beta计划中。
答案 3 :(得分:1)
最简单的方法是硬编码结束日期,之后不再运行。如果用户改变他们的系统时间,它可以被规避,但这是一件很麻烦的事情。
否则,您可以通过http连接到服务器,定期检查许可证,但这需要更多工作。
答案 4 :(得分:1)
这听起来像个好主意。您可能希望将应用程序电话置于家中并与服务器确认已经过了一定的时间。用户可以随时删除手机上的首选项文件,也可以卸载并重新安装应用程序以解决手机限制问题。
我相信密钥库方法也可行,但我不确定它们在Android中是如何工作的。
请在完成后将其设为开源项目 - 我认为这对很多人都有用!
答案 5 :(得分:1)
您可以使用TelephonyManager.getDeviceId()
并创建只能在审阅者手机上运行的应用程序版本。
您可以将其硬编码到应用程序中,或者让电话检查您的服务器,在那里您存储每个设备ID的权限。对于后一种情况,您可以让应用程序在找不到许可证时显示设备ID;审稿人会告诉您,然后在数据库中输入。
答案 6 :(得分:0)
根据Google:“如果您计划在Android电子市场上发布您的应用程序,您用于签署应用程序的密钥的有效期必须在2033年10月22日之后结束。市场服务器强制执行此要求确保用户可以在新版本可用时无缝升级市场应用程序“
我们对开发者挑战II条目所做的是当我们到达到期日时,我们处理的任何新数据都被到期警告所取代。因此,应用程序使用现有数据运行,但不会使用户在到期后输入任何新数据。由于我们的应用程序处理了短信,因此设置时钟是用户克服过期的一个不切实际的长期解决方案。
答案 7 :(得分:0)
根据您向审核人提供的申请类型,您可能还有其他选择。
您将其编码为大量共享软件,只让应用程序运行这么多次。这个代码很容易实现。当然,审稿人可以删除数据,但不是很容易。我认为他们不会因为几美元而经历那么多麻烦。