某些Android设备没有Android Market,如韩国等。
是否可以在运行时检测Android Market的存在?
我知道我可以先尝试打开市场,看看是否有任何例外。但我不认为这是一种明智的做法。
答案 0 :(得分:4)
我知道我可以尝试打开市场 首先要看是否有任何例外 抛出。
为市场ACTION_VIEW
创建Intent
Uri
,然后使用PackageManager
和queryIntentActivities()
查看您是否收到任何回复。如果返回空列表,则表示设备上没有任何内容处理市场Uri
值。
答案 1 :(得分: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);