Android 如何在设备上检测安卓市场的存在?

Android 如何在设备上检测安卓市场的存在?,android,google-play,Android,Google Play,一些安卓设备没有安卓市场,比如韩国等 是否有可能在运行时检测到Android Market的存在 我知道我可以先打开一个市场uri,看看是否有异常抛出。但我认为这不是一个明智的方法 我知道我可以试着打开一个市场 首先看看是否有任何例外 扔 为市场Uri创建ACTION\u视图Intent,然后使用PackageManager和queryIntentActivities()查看是否有任何回报。如果返回一个空列表,您就不知道设备上有什么可以处理市场Uri值。一个完整的解决方案,它还可以自己读取pac

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

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

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

我知道我可以试着打开一个市场 首先看看是否有任何例外 扔


为市场
Uri
创建
ACTION\u视图
Intent
,然后使用
PackageManager
queryIntentActivities()
查看是否有任何回报。如果返回一个空列表,您就不知道设备上有什么可以处理市场
Uri
值。

一个完整的解决方案,它还可以自己读取packagename

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);
Context=this;
final-PackageManager-PackageManager=context.getPackageManager();
字符串packagename=this.getPackageName();
字符串url=”market://details?id=“+packagename;
意向i2=新意向(意向.行动\视图);
i2.setData(Uri.parse(url));
List resolveInfo=packageManager.querytentActivities(i2,packageManager.MATCH_DEFAULT_仅限);
如果(resolveInfo.size()>0)startActivity(i2);

这是一个很好的方法,我希望所有构建第三方商店的程序员都能正确处理市场URI,让他们的商店真正取代谷歌市场。