在 android 中找出 Mime 类型的默认应用程序

Posted

技术标签:

【中文标题】在 android 中找出 Mime 类型的默认应用程序【英文标题】:Find out Default Application for Mime types in android 【发布时间】:2014-03-28 05:44:43 【问题描述】:

如何通过代码获取android中用户设置的默认应用? 我知道我们可以通过 packageManager 获取特定 MIME 类型的默认应用程序包名称。 但是有没有办法获取所有注册为默认打开各种文件的应用程序的列表?

【问题讨论】:

总之我想要一个这样的列表play.google.com/store/apps/… 【参考方案1】:

使用PackageManager.getPreferredActivities()

    final PackageManager pm = getActivity().getPackageManager();

    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_LAUNCHER);

    List<IntentFilter> outFilters = new ArrayList<IntentFilter>();
    outFilters.add(filter);

    List<ComponentName> outActivities = new ArrayList<ComponentName>();
    pm.getPreferredActivities(outFilters, outActivities, null);

【讨论】:

谢谢!正是我想要的! 我可以从intentfilter获取应用程序作为启动器的MIME类型吗?无需遍历列表 ouactivities 并从包名称中查找?

以上是关于在 android 中找出 Mime 类型的默认应用程序的主要内容,如果未能解决你的问题,请参考以下文章

我的应用不会显示在 android.intent.action.VIEW 的选择器对话框中,只有在 Marshmallow 上具有 mime 类型 video/*

我可以在 Android 中创建自定义图像 MIME 类型吗?

在 C# 中找出确切的文件类型 [重复]

我能否可靠地找出正确的 mime 类型来提供不受信任的内容?

在原生 Android 文件选择器中按 mime 类型或扩展名过滤

处理作为 Android 中浏览器 POST 结果的 MIME 类型