检查亚马逊或三星市场或谷歌播放是否在设备中安装了Android应用程序。
假设我的Android手机中安装了名为ABC的应用程序。在我的应用程序中,我列出了手机中安装的所有应用程序,并且需要列出从哪里下载的市场。
如何做到这一点?
答案 0 :(得分:0)
一种选择是单独打包它们。如果您在某些时候决定使用任何特定于市场的功能,例如许可或应用程序内付款,那么无论如何都需要这样做。
一种可管理的方法是一个图书馆项目,其中包含几乎所有内容和一些重新引用它并仅包含细节的迷你项目。
缺点:多个项目而不是一个。好处:可管理性,可维护性。
编辑:如果你仍然喜欢使用证书,这个例子可以提供帮助:thomascannon.net/misc/android_apk_certificate/。
请发布您最终提出的解决方案。
答案 1 :(得分:0)
从Detect if app was downloaded from Android Market
引用答案从API 5开始,您可以使用 PackageManager.getInstallerPackageName(String)。来自 文档:
检索安装包的应用程序的包名称。 这确定了包裹来自哪个市场。
要获取Android电子市场的套餐,这篇文章可能有帮助。
我想使用适当的设备,您可以构建一个应用程序来输出您想要识别的每个市场的包名。
答案 2 :(得分:0)
我是这样做的(所有项目都有一个src和res文件夹,每个市场都有不同的LauncherActivities):
将res和src文件夹复制到/ sharedsources /
为Google /亚马逊/三星制作三个新项目 从每个项目中删除res和src文件夹
在每个项目中链接到/ sharedsources / res和... / src
现在做三个新的活动:
例如GoogleLicensing,AmazonLicensing,SamsungLicensing
Google Project Manifest:将GoogleLicensing设置为启动器活动
Samsung Project Manifest:将SamsungLicensing设置为Launcher Activity
Amazon Project Manifest:将AmazonLicensing设置为Launcher Activity
Google Project:从构建中移除SamsungLicensing和AmazonLicensing活动(不要删除) 三星项目:从构建中删除GoogleLicensing和AmazonLicensing活动(不要删除) 亚马逊项目:从构建中删除SamsungLicensing和GoogleLicensing活动(不要删除)
完成。
导出每个项目。
请记住,您现在有三个AndroidManifest,需要相应地进行编辑。 另请注意,您一次只能打开一个项目。 无论如何,没有理由打开多个,因为它们共享相同的来源......
实际上我这样做是为了能够在Linux和Windows之间交换(我的共享资源文件夹在共享的硬盘上)仅用于1个项目,但它对于不同的市场也非常好。