【发布时间】:2013-01-22 00:33:56
【问题描述】:
当我将 APK 文件发送到某人的电子邮件时,他可以将文件复制一百万次并出售一百万次,但我不希望这样。
如何将保护集成到 Java 文件、manifest.xml 或其他位置,以使程序的副本不起作用?或者我可以为 APK 文件设置一个一次性密码吗?
【问题讨论】:
当我将 APK 文件发送到某人的电子邮件时,他可以将文件复制一百万次并出售一百万次,但我不希望这样。
如何将保护集成到 Java 文件、manifest.xml 或其他位置,以使程序的副本不起作用?或者我可以为 APK 文件设置一个一次性密码吗?
【问题讨论】:
你不能。没有办法做到这一点。当您通过电子邮件将 apk 发送给某人时,您必须承担不必要的分发风险。
您可以做的最好的事情是每次通过电子邮件将其发送给某人时编译一个单独的 apk,并在其中放入一个唯一的代码。当应用程序首次启动时,让它在在线服务器上注册。如果有人再次尝试注册相同的代码,那么您就知道该 apk 已发送给其他人或安装在多个设备上。在这种情况下,您的服务器可以告诉您的应用该特定代码已被使用并让它拒绝工作。
这种方法的缺点:
简而言之,没有万无一失的方法。
【讨论】:
如果您希望您的用户能够安装应用程序,您没有任何方法可以做到这一点
一种可能的解决方法是测试 DeviceID,并仅在 DeviceID 已获得授权的情况下允许应用继续运行。
显然,您必须在代码中进行管理,如果您需要授权大量设备,这可能会变得非常麻烦。另外,我不确定每台设备都有 DeviceID
【讨论】:
使用以下选项之一创建一个只需几行额外代码的自定义 APK
如何记录应用程序的启动次数,如果超过显示一条消息并关闭它?
或者您可以检查代码中的试用天数,在 MainActivity/Base Activity 中检查从现在起的 5 天,如果超过退出应用程序。
您始终可以将此详细信息保存在应用的共享首选项中并与之交叉检查。
【讨论】: