-2

当我将 APK 文件发送到某人的电子邮件时,他可以将文件复制一百万次并出售一百万次,但我不希望那样。

如何将保护集成到 Java 文件、manifest.xml 或其他地方,以使程序的副本不起作用?或者我可以为 APK 文件设置一个一次性密码吗?

4

3 回答 3

2

你不能。没有办法做到这一点。当您通过电子邮件将 apk 发送给某人时,不需要的分发是您必须承担的风险。

您可以做的最好的事情是每次通过电子邮件将其发送给某人时编译一个单独的 apk,并在其中放入一个唯一的代码。当应用程序首次启动时,让它在在线服务器上注册。如果有人再次尝试注册相同的代码,那么您就知道该 apk 已发送给其他人或安装在多个设备上。在这种情况下,您的服务器可以告诉您的应用程序该特定代码已被使用并拒绝工作。

这种方法的缺点:

  1. 您需要为每封单独的电子邮件专门编译一个新的 apk
  2. 任何人都可以反编译应用程序并将代码更改为其他代码,然后重新编译并使用它。或者,如果他们愿意,他们可以删除整个检查机制。

简而言之,没有万无一失的方法可以做到这一点。

于 2013-02-06T17:46:13.497 回答
0

如果您希望您的用户能够安装应用程序,您没有任何方法可以做到这一点

一种可能的解决方法是测试 DeviceID,并仅在 DeviceID 已获得授权时才允许应用程序继续运行。

显然,您必须在代码中进行管理,如果您需要授权大量设备,这可能会变得非常麻烦。另外我不确定每个设备都有一个 DeviceID

请参阅是否有唯一的 Android 设备 ID?有关此的更多信息

于 2013-02-06T17:49:07.647 回答
0

使用以下选项之一创建一个只需几行额外代码的自定义 APK

如何保持应用程序启动的时间计数,如果超过显示消息并关闭它?

或者,您可以检查代码中的试用天数,在 MainActivity/Base Activity 中检查从现在开始的 5 天,如果超过退出应用程序。

您始终可以将此详细信息保存在应用程序的共享首选项中并与之交叉检查。

于 2013-02-06T17:49:50.050 回答