3

一些安卓设备没有安卓市场,比如韩国等。

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

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

4

2 回答 2

4

我知道我可以尝试先打开一个市场 uri,看看是否有任何异常抛出。

ACTION_VIEW Intent为 Market创建Uri,然后使用PackageManagerqueryIntentActivities()看看你是否得到任何回报。如果返回一个空列表,您就知道设备上没有任何东西处理市场Uri值。

于 2010-07-27T06:57:06.350 回答
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);
于 2011-01-06T22:08:55.987 回答