Android:尝试进入商店时引发异常

Android:尝试进入商店时引发异常,android,exception,android-intent,Android,Exception,Android Intent,我的应用程序有一个按钮,可以引导(准确地说,应该是:)到Google Play中另一个应用程序的页面。按钮的点击反应如下: public void pressedPurchaseButton(View view) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.infmanrb.multrainer")); startActivity(browse

我的应用程序有一个按钮,可以引导(准确地说,应该是:)到Google Play中另一个应用程序的页面。按钮的点击反应如下:

public void pressedPurchaseButton(View view)
{
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.infmanrb.multrainer"));
    startActivity(browserIntent);
}        
但是,在emulator中,按下按钮会导致异常:

原因:android.content.ActivityNotFoundException:未找到可处理Intent的活动{act=android.Intent.action.VIEW dat=market://details?id=com.infmanrb.multrainer }


我猜Google Play没有安装在Emulator上——这就是原因。但无论如何,避免应用程序崩溃的正确方法是什么?我是否可以提前检查是否会处理该意图?或者唯一的方法是尝试捕获异常?

使用以下实用方法:

public static boolean isIntentHandleable(Context context, String action) {
    final PackageManager manager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
        manager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}
publicstaticboolean可扩展(上下文、字符串操作){
最终PackageManager=context.getPackageManager();
最终意图=新意图(行动);
列表=
manager.querytentActivities(仅限intent、PackageManager.MATCH_DEFAULT_);
返回列表.size()>0;
}
将您想要的意图作为动作传递,当然还有上下文引用。如果返回false,则无法处理此操作


同时检查此链接:

使用以下实用方法:

public static boolean isIntentHandleable(Context context, String action) {
    final PackageManager manager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
        manager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}
publicstaticboolean可扩展(上下文、字符串操作){
最终PackageManager=context.getPackageManager();
最终意图=新意图(行动);
列表=
manager.querytentActivities(仅限intent、PackageManager.MATCH_DEFAULT_);
返回列表.size()>0;
}
将您想要的意图作为动作传递,当然还有上下文引用。如果返回false,则无法处理此操作


同时检查此链接:

确实,模拟器上没有安装play。为了避免崩溃,您可以询问simply catch的内容解析器,除非emulator上没有安装exceptionindeed play。为了避免崩溃,您可以请求的内容解析器简单地捕获异常