检查意图uri是否可用

Tho*_*hle 13 android imdb android-intent

我有一个有时链接到imdb的应用程序.我可以使用http://m.imdb.com/find或者如果可用的话imdb:///find.我的麻烦是我无法找到一种方法来检查它是否imdb://可用,为时已晚.

因为用户点击了链接,所以我无法捕获android.content.ActivityNotFoundException异常.

我错过了一些明显的东西吗


解:

根据inazaruk的建议,我现在正在使用以下代码:

public static boolean isUriAvailable(Context context, String uri) {
    Intent test = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    return context.getPackageManager().resolveActivity(test, 0) != null;
}
Run Code Online (Sandbox Code Playgroud)

必须使用直接uri来调用该方法,imdb:///find而不仅仅是imdb://.

ina*_*ruk 15

您可以使用它resolveActivity()来检测系统中是否有任何Activity能够处理您的意图的内容.当然,您需要构建模仿"uri"点击的意图.这可能是使用Intent.setData()函数完成的,尽管我没有测试/验证自己.