我有一个应用程序有时会链接到 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;
}
必须使用指向您请求的内容的直接 uri 调用该方法,例如 imdb:///find
而不仅仅是 imdb://
。
最佳答案
您可以使用 resolveActivity()
检测系统中是否有任何 Activity
能够处理您的 Intent 。当然,您需要构建模仿“uri”点击的 Intent 。这可以使用 Intent.setData()
来完成功能,虽然我自己没有测试/验证。
关于android - 检查 Intent uri 是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050068/