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

3

有些Android设备没有安装Android市场,例如韩国等地区。

是否可以在运行时检测Android市场的存在?

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

2个回答

4

我知道可以首先尝试打开一个市场URI来查看是否会抛出异常。

创建Market URI的ACTION_VIEW Intent,然后使用PackageManager和queryIntentActivities()来查看是否有任何返回。如果返回为空列表,则说明设备上没有任何处理Market URI值的内容。


这是一个很好的方法,我希望所有构建第三方商店的程序员都能正确处理市场URI,使他们的商店成为Google市场的真正替代品。 - Janusz

1

一种完整的解决方案,还可以自动读取包名称...

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接