【问题标题】:How to prevent android app being downloaded outside google play如何防止在 google play 之外下载 android 应用程序
【发布时间】:2015-11-16 20:14:45
【问题描述】:

我正在为安卓开发一个应用程序。现在有很多商店通过免费的方式非法分发安卓付费应用程序。 我可以编写任何 sn-p 代码来防止我的 android 应用程序从任何其他不是 google play 的商店下载吗?例如,当用户尝试打开应用时,显示“您需要在 google play 中购买此应用”之类的消息,然后关闭应用?

【问题讨论】:

  • 一些可以通过 Google Playstore 检查应用程序是否被购买的代码已经非常有用了。
  • 我关心的是如何防止Google Play以外的外部商店提取我的应用程序的APK并在他们的网站上非法分发?
  • @user2872856:您唯一的选择是根本不分发应用程序。任何拥有 Android 设备的人都可以获取您的 APK 文件。有些人可能会选择重新分发该 APK 文件,即使您不希望这样做。
  • 在定价和分发下,有一个营销退出选项:“不要在 Google Play 和任何 Google 拥有的在线或移动资产中宣传我的应用程序”。这是为了防止我的应用在 Google Play 之外分发?

标签: android


【解决方案1】:

检查packageInstallerName

检查您的应用是否从 Google Play 下载的最简单方法是检查 packageInstallerName 是否为空,如下例所示:

String installer = getPackageManager().getInstallerPackageName(
        "com.example.myapp");

if (installer == null) {
    // app was illegally downloaded from unknown source. 
} 
else {
    // app was probably installed legally. Hooray!
}

但正如我们在这里所读到的:https://stackoverflow.com/a/36299631/4730812

出于以下原因,您不应使用PackageManager#getInstallerPackageName 检查该应用是否是从 Google Play 安装的或用于许可目的:

1) 安装程序包名称将来可能会更改。例如,安装程序包名称使用 "com.google.android.feedback"(见[这里][2])现在是 "com.android.vending".

2) 出于盗版原因检查安装程序包名相当于使用 Base64 加密密码 - 简直是糟糕透顶 练习。

3) 合法购买该应用程序的用户可以旁加载 APK 或从另一个未设置 正确的安装程序包名称并获得许可证检查错误。这会 最有可能导致差评。

4)如你所说,盗版者在安装APK时可以简单的设置安装包名。

因此,只有两种好方法可以防止 Android 应用在 Google Play 商店之外被下载:

为您的应用添加许可;

基本保证应用已经被用户使用设备购买:

Android 参考:

应用内结算

让您的应用程序免费并添加内置购买。

应用内结算是一项 Google Play 服务,可让您销售数字产品 应用程序内部的内容。您可以使用该服务进行销售 广泛的内容,包括可下载的内容,例如媒体 文件或照片,游戏关卡或药水等虚拟内容, 优质服务和功能等。您可以使用应用内结算来 将产品销售为:

  • 标准应用内商品(一次性计费),或

  • 订阅(定期、自动计费)

当您使用应用内结算服务销售商品时,无论是 应用内产品或订阅,Google Play 处理所有结帐 详细信息,因此您的应用程序永远不必直接处理任何 金融交易。 Google Play 使用相同的结帐后端 用于应用程序购买的服务,因此您的用户体验 一致且熟悉的购买流程。

您通过 Google Play 发布的任何应用程序都可以实现 应用内结算。

Android 参考:

希望对你有帮助

【讨论】:

  • 我关心的是如何防止Google Play以外的外部商店提取我的应用程序的APK并在他们的网站上非法分发?
  • 好吧,我还没有类似的问题,但尝试使用应用内结算,因为它只适用于 Google Play 服务,所以如果你的应用在外部网站上,它不会正常工作,它会导致很多崩溃
  • 实施应用内结算是否可以避免在购买应用内结算内容时在 Google Play 之外下载的应用?
  • 作为 Android Docs,通过 In-App Billing 购买仅适用于 Google Plays Store 平台,因此从其他商店或只是 apk 获得您的应用的用户不会像基本应用那样做更多的事情。我还没有使用它,但我认为如果有可能让你的应用成为试用版 - 你知道一段时间后,购买或删除它,因为它不再工作了
猜你喜欢
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2015-05-01
  • 2012-01-19
  • 2015-01-17
  • 1970-01-01
相关资源
最近更新 更多