Android:尝试去商店时抛出异常

时间:2012-10-02 09:59:38

标签: android exception android-intent

我的应用程序有一个按钮,指向(应该引导,确切:) :)到GooglePlay中的另一个应用程序页面。按钮的点击反应如下:

public void pressedPurchaseButton(View view)
{
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.infmanrb.multrainer"));
    startActivity(browserIntent);
}        

但是,在模拟器中,按下按钮会导致异常:

Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.infmanrb.multrainer }

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

1 个答案:

答案 0 :(得分:1)

使用这样的实用方法:

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

将您想要的意图传递给上下文参考。如果返回false,则无法处理此操作。

也请检查此链接:Check if intent uri is available