如何以编程方式确定Play商店中的应用是否可以安装在当前设备上?

在我的应用程序中,我推荐了相关的应用程序,但只是想要推荐它们,如果它们实际上可以安装在设备上(例如相关应用程序目标国家中的设备,正确的操作系统版本等)。 请参阅https://developer.android.com/google/play/filters.html

  1. 有什么API可以让我查询一个给定的应用程序,我推荐链接到市场:// details?id = package_name可以安装在本地设备上?
  2. 如果没有,我可以手动将其他应用程序的需求存储在我自己的应用程序中。 但是,如何确定用户的Play商店所在的国家/地区等项目?

Solutions Collecting From Web of "如何以编程方式确定Play商店中的应用是否可以安装在当前设备上?"

不幸的是, 没有API将应用程序与特定设备进行比较。 Play商店在内部做某事。

所以,第二种方法是要走的路。 最常见的filter是

  • 国家 (因为您无法检索“Play商店国家”,请使用其他方法…)

    String locale = context.getResources().getConfiguration().locale.getCountry(); // or if you are sure there is a SIM-card TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String countryCode = tm.getSimCountryIso(); // or use country of current network (ie from 3G) String countryCode = tm.getNetworkCountryIso() 
  • Android版本

     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) { // only for gingerbread and newer versions } 
  • 屏幕尺寸

     Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 

你可能想检查其他的东西,如可用的传感器(你可以通过getSensorList )。 列出它们都会创build一个很长的列表,并且find所有的API来find这些东西是非常容易的,所以我不会把它们全部列出来。

通过检查国家,版本和屏幕大小,你应该是安全的大部分的应用程序。

有什么API可以让我查询一个给定的应用程序,我推荐链接到市场:// details?id = package_name可以安装在本地设备上?

是的,有点,但我所考虑的API /技巧可能不符合你的要求。

这是一个实验性的Googlefunction,就我所知它仅适用于Web应用程序(不是Android应用程序,尽pipe我认为它可能与Android Web浏览器一起工作,并且生成的应用程序可能不会最终显示为本机),但它要求您的用户拥有一个Google+login(不只是一个Gmail帐户),你需要手动将其列入白名单,以使用它。

这个想法是,一旦你在你的(白名单)第三方网站上用Google+login,你可以点击位于第三方网站上的安装button,第三方网站将popup一个窗口,让你一键安装button确认权限,并进行远程安装以进行无线更新。

从以下屏幕截图的url栏中可以看到,popup式窗口实际上来自Google Play网域,因此从技术上讲,这只是一个简单的技巧,旨在让用户能够在不离开您的网站的情况下安装应用程序。

此外,我希望您注意当前的下拉select框中的设备的名称。 您无法在此处看到,但select框中包含您的所有已注册的设备以及您的Google+帐户,并且只会显示与所涉及的实际应用程序兼容的设备的黑色字体。

beta plus tunin广播网站的屏幕截图,包括Google plus和Google Play集成

现在是坏消息。 在这个例子中,网站属于TuneIn收音机,Android应用程序也属于TuneIn收音机。 我个人不知道,如果这个function可以启用一个网站,列出它没有自己的Android应用程序。 这将是一个你不得不问的问题。

目前,这个API仍然只是networking。 这是Google员工在您要求将您的申请列入白名单时可能提出的反对意见。

目前,TuneIn收音机允许您使用您的Google+帐户注册设备,但不会显示我在所参与的演示中看到的任何内容。 在我看到的演示中,没有用户所需的设备注册,一旦Google+login与帐户相关联,所有内容都将无缝完成。 所以看tunein.com广播网站本身可能不是对你有用。

最后,我相信Google会对其他第三方应用程序商店不满,所以在向Google提出您的申请之前,请尝试将其纳入本API的白名单。 请务必认真遵守Google Play商店的条款和服务,并准备好考虑Google如何最终从允许您(以及其他人)使用此类function中受益。

这里是github上的幻灯片 (由于某些原因,幻灯片的显示本身不再适用于我)。 您需要联系任何一位Google员工,让您获得此API的白名单。 他们的联系信息/ Google +信息位于幻灯片中。

请让我们知道你的进展。 如果你能克服上面列出的任何问题,我会非常感兴趣。