如何检测设备上是否存在Android电子市场?

如何检测设备上是否存在Android电子市场?

问题描述:

某些Android设备没有Android Market,比如韩国等。如何检测设备上是否存在Android电子市场?

是否有可能在运行时检测到Android Market的存在?

我知道我可以尝试先打开一个市场uri,看看是否有任何异常抛出。但我认为这不是一个明智的做法。

我知道我可以尝试打开市场URI 首先看是否有抛出的任何异常 。

的市场Uri创建ACTION_VIEWIntent,然后用PackageManagerqueryIntentActivities()来看看你得到任何东西。如果返回空列表,则设备上的任何处理都不会处理市场Uri值。

+0

这是一个很好的方法,我希望所有的建设第三方存储编程处理市场的URI改正使他们的商店工作,作为一个真正的更换到谷歌市场。 – Janusz 2010-07-27 07:28:57

完整的解决方案,也通过读取自身软件包名...

Context context = this; 
final PackageManager packageManager = context.getPackageManager(); 

String packagename = this.getPackageName(); 

String url = "market://details?id=" + packagename; 

Intent i2 = new Intent(Intent.ACTION_VIEW); 
i2.setData(Uri.parse(url)); 

List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(i2,PackageManager.MATCH_DEFAULT_ONLY); 

if (resolveInfo.size() > 0) startActivity(i2);