【问题标题】:Check from which market(Amazon or Samsung or Google) is an app installed?检查从哪个市场(亚马逊、三星或谷歌)安装了应用程序?
【发布时间】:2012-10-26 06:49:34
【问题描述】:

检查亚马逊或三星市场或谷歌播放是否在设备中安装了android应用程序。

如果我在我的安卓手机中安装了名为 ABC 的应用程序。在我的应用程序中,我列出了手机中安装的所有应用程序,并需要列出它们下载的市场。

如何做到这一点?

【问题讨论】:

  • 我试图从它的包信息中获取安装的应用程序的签名。
  • 这个签名可以用来查找它提交的市场吗?

标签: android


【解决方案1】:

引用Detect if app was downloaded from Android Market的回答

从 API 5 开始,您可以使用 PackageManager.getInstallerPackageName(String)。来自 文档:

检索安装包的应用程序的包名。 这可以确定包裹来自哪个市场。

要获取 Android Market 的包,这篇文章可能会有所帮助。

我想用合适的设备,你可以构建一个应用来输出你想识别的每个市场的包名。

【讨论】:

【解决方案2】:

一种选择是将它们单独打包。如果您在某个时候决定使用任何特定于市场的功能,例如许可或应用内付款,那么无论如何您都需要这样做。

一种可管理的方式是一个包含几乎所有内容的库项目和一些引用它并仅包含细节的迷你项目。

缺点:多个项目而不是一个。好处:可管理性、可维护性。

编辑:如果您仍然喜欢为此使用证书,此示例可以提供帮助:thomascannon.net/misc/android_apk_certificate/。

请发布您最终提出的解决方案。

【讨论】:

  • 嘿,谢谢老兄。这很棒。我想我可以在此基础上再接再厉。
【解决方案3】:

我是这样做的(所有项目的单个 src 和 res 文件夹,每个市场的不同 LauncherActivities):

复制您的 res 和 src 文件夹,例如 /sharedsources/

为 Google/Amazon/Samsung 创建三个新项目。
从每个项目中删除 res 和 src 文件夹

在每个项目中链接到 /sharedsources/res 和 .../src
现在制作三个新活动:
例如谷歌许可、亚马逊许可、三星许可

Google 项目清单:将 GoogleLicensing 设置为启动器活动
三星项目清单:将 SamsungLicensing 设置为启动器活动
Amazon Project Manifest:将 AmazonLicensing 设置为 Launcher Activity

Google 项目:从构建中删除 SamsungLicensing 和 AmazonLicensing 活动(不要删除) 三星项目:从构建中删除 GoogleLicensing 和 AmazonLicensing 活动(不要删除) 亚马逊项目:从构建中删除 SamsungLicensing 和 GoogleLicensing 活动(不要删除)

完成。
导出每个项目。

请记住,您现在有三个 AndroidManifest,需要进行相应的编辑。 另请记住,您一次只能打开一个项目。 无论如何,没有理由打开多个,因为它们共享相同的源...

实际上,我这样做是为了能够在 Linux 和 Windows 之间进行交换(我的 sharedsources 文件夹位于共享硬盘上),仅用于 1 个项目,但它也适用于不同的市场。

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多