如何检测设备上是否存在Android电子市场?
问题描述:
某些Android设备没有Android Market,比如韩国等。如何检测设备上是否存在Android电子市场?
是否有可能在运行时检测到Android Market的存在?
我知道我可以尝试先打开一个市场uri,看看是否有任何异常抛出。但我认为这不是一个明智的做法。
答
我知道我可以尝试打开市场URI 首先看是否有抛出的任何异常 。
的市场Uri
创建ACTION_VIEW
Intent
,然后用PackageManager
和queryIntentActivities()
来看看你得到任何东西。如果返回空列表,则设备上的任何处理都不会处理市场Uri
值。
答
完整的解决方案,也通过读取自身软件包名...
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);
这是一个很好的方法,我希望所有的建设第三方存储编程处理市场的URI改正使他们的商店工作,作为一个真正的更换到谷歌市场。 – Janusz 2010-07-27 07:28:57