Android:如何与其他应用程序集成?

Android:如何与其他应用程序集成?,android,Android,我有一个付费的android应用程序,它使用谷歌LVL代码来验证用户 一家公司想付钱给我,这样他们的应用程序就可以包含我的应用程序的免费版本。然而,我不知道如何做到这一点,不会导致我的应用程序很容易被盗版。下面是我正在考虑的一些实现选项,但它们似乎都不是特别好的想法。有什么建议吗 我给他们提供了一个不使用LVL代码的apk。然后,他们可以将我的apk与他们的应用程序打包,并使用ACTION_VIEW意图安装它。这似乎是个坏主意,因为我认为对于一些胭脂用户来说,提取我的不安全apk并分发它并不特别

我有一个付费的android应用程序,它使用谷歌LVL代码来验证用户

一家公司想付钱给我,这样他们的应用程序就可以包含我的应用程序的免费版本。然而,我不知道如何做到这一点,不会导致我的应用程序很容易被盗版。下面是我正在考虑的一些实现选项,但它们似乎都不是特别好的想法。有什么建议吗

  • 我给他们提供了一个不使用LVL代码的apk。然后,他们可以将我的apk与他们的应用程序打包,并使用ACTION_VIEW意图安装它。这似乎是个坏主意,因为我认为对于一些胭脂用户来说,提取我的不安全apk并分发它并不特别困难

  • 也许我可以建立一个版本,检查他们的应用程序是否已安装,如果是,它会查询他们的应用程序是否有某种解锁代码。只有当解锁代码成功时,应用程序才会运行。我主要担心的是,我不知道“查询另一个应用程序”是否可以获得解锁码


  • 这绝对是可以实现的。如前所述,查询应用程序的一种方法是使用内容提供商。如果您担心安全问题,您可以引入两个应用都必须拥有的访问提供商的附加权限。虽然这两个应用程序都有相同的签名,但它的效果并不是很好

    另一种方法是,如果他们有一个您可以绑定并请求代码或任何其他身份验证的服务。在这种情况下,他们的服务还可以通过查询您的应用程序用户ID并通过PackageManager检查签名来验证您的应用程序的有效性


    不幸的是,无论如何要阻止你的应用程序被盗版是不可能的。即使是LVL。。。因为所有这些都可以反编译并最终被破坏。但至少你可以让攻击者的生活更艰难。

    对于你想要做的事情,我会从你的项目中创建一个jar,并将其标记为库项目。这样,您可以将应用程序分发给您的客户,但他们将无法看到您编写的实际代码。使用此方法,他们可以直接调用任何方法,这比与apk交互更容易。

    从其他Appals查询内容提供商,然后通过packagemanager检查他们的应用程序,以确保有人没有欺骗提供商。我实际上也有兴趣找到此答案。我已经做过实验但我的应用程序使用的是资源图像/布局/字符串,对它们的引用必须在编译时解析。因此,它不能打包为一个罐子。