如何捕获 Android 的 startActivty deep link 错误

how to catch startActivty deep link error for Android

我正在尝试触发一个很深的 link 比如:

yelp://

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

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.

你可以使用这些方法

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

与包管理器核实并确定是否有 activity 可以处理您发送的意图。