如何捕获Android的startActivty深层链接错误

时间:2015-08-24 15:49:13

标签: android deep-linking

我试图触发像:

这样的深层链接
yelp://

应为yelp:///,但我想验证链接是否失败,并告诉用户输入正确的地址或安装应用程序。这是我的尝试块:

try{
            startActivity(new Intent("android.intent.action.VIEW",
                    Uri.parse(message)));
        } catch (android.content.ActivityNotFoundException e){
            throw new RunTimeException("Please install the application you are trying to trigger." + e.toString());**
}

未显示RunTimeException。有关如何为此异常向用户显示对话框等的任何建议。 TIA。

1 个答案:

答案 0 :(得分:1)

你可以沿着这些方向使用

public static boolean canLaunchIntent(Context ctx, Intent intent) {
    final PackageManager mgr = ctx.getPackageManager();
    List<ResolveInfo> list = mgr.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}

检查包管理器并确定是否存在可以处理您要发送的意图的活动。