基于文件类型的应用程序选择对话框

2024-04-18

我正在尝试创建一个对话框,它将显示打开给定文件类型的可用应用程序列表。

我一直在 stackoverflow 上查看一些解决相同问题的问题,但由于缺乏答案而迷失了方向。我特别关注这个问题:

在 Android 中,如何根据文件类型显示应用程序选择器? https://stackoverflow.com/questions/4834374/in-android-how-can-i-display-an-application-selector-based-on-file-type

我的后续问题是:

  • 该怎么办List<ResolveInfo>?
  • 如何显示可用应用程序的名称和图标?
  • 当用户选择一个应用程序时,如何根据所选项目的ResolveInfo启动它?

我找到了一个解决方案,它为我提供了可以打开给定 mimetype 的应用程序的完整列表。这不是最好的,因为我希望列表更具体,并且只有一些应用程序(例如,如果它是一个我想打开的 URL,则只会显示浏览器),但可以达到目的。

这是我所做的:

File file = new File( "myFileLocation.txt" );
String extension = MimeTypeMap.getFileExtensionFromUrl( file.getPath() );
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);

Intent intent = new Intent();
intent.setAction( Intent.ACTION_VIEW );
intent.setDataAndType( Uri.fromFile( file ), type );    
context.startActivity( intent );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于文件类型的应用程序选择对话框 的相关文章

随机推荐

  • UnserializedDependencyException:WELD-001413:bean 声明钝化作用域,但具有不支持钝化的依赖项

    我有以下 CDI 托管 bean Named SessionScoped public class InfoPageController implements Serializable Inject private InfoPageMapp
  • 如何将包含空格的参数传递给包含 gawk match() 的脚本?

    gt gawk match foo bar junk 是一个合法的命令 我想传递参数foo bar在 shell 脚本中添加它 foobar sh其中有 bin bash gawk match 1 junk 不起作用 gt foobar s
  • C++ MI的虚表布局(多重继承)

    看下面的C 代码 class Base1 public Base1 virtual Base1 virtual void speakClearly virtual Base1 clone const protected float data
  • AJAX聊天,自动滚动窗口

    复制 使用 JavaScript 滚动溢出的 DIV https stackoverflow com questions 13362 scrolling overflowed divs with javascript 我有一个 AJAX 聊
  • 如何让proc更有效?

    有一个顶点集合 x1 y1 x2 y2 xn yn 我想改变这些坐标的中心 所以我尝试 proc changeCenter vertices X Y set myList list foreach element vertices lapp
  • 在 Web.Config 的 Location Path 元素中指定多个目录

    在我的 ASP NET 的 Web 配置文件中 我定义了以下位置元素
  • Windows Phone 中的 Azure Active Directory 身份验证失败

    我正在遵循 Windows Phone 身份验证教程将身份验证添加到您的移动服务应用程序 http azure microsoft com en us documentation articles mobile services windo
  • C Typedef 和 struct 问题

    这两种声明有什么区别 哪种声明优先于另一种 typedef struct IOPORT GPIO TypeDef port u16 pin IOPORT typedef struct GPIO TypeDef port u16 pin IO
  • 在android中将json对象发送到HTTP服务器

    我使用以下代码将 JSON 对象发送到 HTTP 服务器 最主要的是我还必须发送布尔值 public void getServerData throws JSONException ClientProtocolException IOExc
  • 谷歌地图上 100k 或更多标记,无需聚类

    我有一些通过安装在汽车上的 GPS 设备收集的数据 所以我拥有的数据基本上都位于街道 道路上 周围 每个坐标都有一些值 数据的格式是这样的 lat long value 12 979155 77 644925 6 12 97916833 7
  • PostgreSQL 列名区分大小写吗?

    我有一个数据库表 persons在另一个团队传下来的 Postgres 中 有一个列名 first Name 现在我尝试使用 PG Commander 来查询这个表的这个列名 select from persons where first
  • 使用 javascript 匹配电话国家/地区代码

    我正在尝试实现一个 JavaScript 函数来替换电话号码的国家 地区代码部分 输入是 90 533 333 33 33 我想用javascript替换 90部分 我尝试编写正则表达式 但没有成功 a z s 编辑 最终解决方案 ddlC
  • 删除媒体样式表上的 a:hover?

    如何删除媒体查询 CSS 文件中主 CSS 文件中指定的样式条目 例如 我想删除 a hover 条目以在触摸设备上使用 主要 css a hover color 999999 background 111111 如何在 media css
  • 日期未保存在mysql数据库中

    我在 MySQL 数据库中保存日期时遇到问题 测试一切 我正在尝试将 2010 01 01 例如 保存在 MySQL 数据库中 首先 我将 MySQL 字段设置为最新 这不起作用 但是当我将字段设置为字符串类型时 它确实将日期保存在数据库中
  • gulp compass 创建一个不需要的文件而不是仅使用流

    这是我的应用程序指南针吞咽任务 var compass require gulp compass var autoprefixer require gulp autoprefixer gulp task app compass functi
  • 更改不同值的单元格颜色 - Gridview

    我需要区分两个连续的单元格 一行中的每个值 如果它们具有不同的值 则在将值绑定到网格视图时 因此 如果在第 1 行中我有单元格 ABC 在第 2 行中我有单元格 CBA 我需要用不同的颜色为每个单元格着色 最好的方法是什么 这称为条件格式
  • 什么是渐进增强?

    Jeff 在谈论使用 JQuery 编写 stackoverflow 时提到了 渐进增强 的概念 经过快速谷歌之后 我发现了一些关于它的高层讨论 谁能推荐一个作为程序员开始的好地方 具体来说 我一直在用 PHP 编写 Web 应用程序 并希
  • 如何解锁 Eclipse 4.2 (Juno) 中的工具栏

    我从 Eclipse Indigo 3 7 迁移到 Juno 4 2 在 Juno 中 所有工具栏似乎都被永久锁定 有没有办法解锁它们以便可以移动或重新排列它们 尝试 Windows 首选项 外观 看打印 然后在搜索框中输入 主题 或转到
  • 使用 R 代码的移动平均线

    我需要 R 代码的第一部分是 编写一个执行以下操作的 R 函数 给定一个序列 xN x1 x2 xN of N 观察 该函数返回一个移动平均值向量 其中计算每个平均值 k 个连续观察值 将函数命名为 ma 其参数为 向量 xN 和 k 到目
  • 基于文件类型的应用程序选择对话框

    我正在尝试创建一个对话框 它将显示打开给定文件类型的可用应用程序列表 我一直在 stackoverflow 上查看一些解决相同问题的问题 但由于缺乏答案而迷失了方向 我特别关注这个问题 在 Android 中 如何根据文件类型显示应用程序选