android - 检查 Intent uri 是否可用

标签 android android-intent imdb

我有一个应用程序有时会链接到 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/

相关文章:

android - 将 MapView 与 fill_parent 一起使用时不显示缩放控件

java - 尝试在 Android 应用程序(java)上设置静音按钮

javascript - 尝试使用 JavaScript/jQuery 将来自 OMDb API 的 JSON 解析为 HTML Bootstrap 表

android - 如何知道Android解码器MediaCodec.createDecoderByType(type)是硬件解码器还是软件解码器?

php - 从数据库插入或选择数据时 PHP 出错

android - 如何在 Android 应用程序中重复播放歌曲?

android - 启动另一个应用程序 Activity ,将其从最近列表中删除

android - IntentRecieverLeakedException,您是否错过了对 unregisterReceiver() 的调用?在安卓中

MySQL IMDB 过滤发布日期