3

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

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

如何才能做到这一点?

4

3 回答 3

0

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

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

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

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

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

于 2012-10-26T07:56:34.613 回答
0

引用检测应用程序是否从 Android 市场下载的答案

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

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

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

我想使用适当的设备,您可以构建一个应用程序来输出您想要识别的每个市场的包名称。

于 2012-10-26T08:02:18.837 回答
0

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

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

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

在每个项目中链接到 /sharedsources/res 和 .../src
现在创建三个新活动:
例如 GoogleLicensing、AmazonLicensing、SamsungLicensing

Google Project Manifest:将 GoogleLicensing 设置为 Launcher Activity
三星项目清单:将 SamsungLicensing 设置为 Launcher Activity
亚马逊项目清单:将 AmazonLicensing 设置为 Launcher Activity

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

完毕。
导出每个项目。

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

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

于 2012-11-28T17:43:30.953 回答