在android中启动基于文件的Activity

2024-04-27

我正在开发一个应用程序,它列出文件夹中的文件(在 ListView 中)。当用户单击其中一个项目时,如果它是一个文件,那么我想启动一个可以处理它的活动(如果有的话),或者如果没有则显示某种错误消息。

我怎样才能做到这一点?当然,这不是全部,但我如何确定哪些应用程序可以处理文件(如果有)。


首先,您需要确定文件的 MIME 类型。您可以使用以下方法执行此操作Mime类型映射 http://developer.android.com/reference/android/webkit/MimeTypeMap.html:

MimeTypeMap map = MimeTypeMap.getSingleton();
String extension = map.getFileExtensionFromUrl(url); // url is the url/location of your file
String type = map.getMimeTypeFromExtension(extension);

然后,一旦您知道 MIME 类型,您就可以为该类型创建一个意图:

Intent intent = new Intent();
intent.setType(type);

最后,您想要检查是否有任何活动可以解析该类型的意图。这可以通过包管理器 http://developer.android.com/reference/android/content/pm/PackageManager.html:

PackageManager manager = getPackageManager(); // I'm assuming this is done from within an activity. This a Context method.
List<ResolveInfo> resolvers = manager.queryIntentActivities(intent, 0);
if (resolvers.isEmpty()) {
  // display error
} else {
  // launch the intent. You will also want to set the data based on the uri of your file
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中启动基于文件的Activity 的相关文章

  • Firebase FCM 通知图像不会显示

    我在我的项目中使用 FCM 当尝试使用 firebase 撰写通知 功能测试传入通知时 我将标题 正文和图像 URL 添加到消息中 它显示了它应该是什么样子 丰富的通知与图像 但发送给我的通知是正常的 没有任何图像 这是 firebase
  • GridLayout 对齐列内的子项

    我有一个GridLayout由 6 个孩子组成 它的列数为 2 左列的子列有layout gravity of start end fill horizontal and layout width0dp 这会导致它们填满所有可用空间 Thi
  • 在android中的操作栏中标题左侧添加图标

    我想在操作栏中标题的左侧添加一个可点击的图标 按钮 怎么做 以下是我向操作栏添加搜索和设置图标的代码 它们出现在右侧 但我想在标题左侧添加一个新图标 怎么做 XML menu menu
  • 在操作栏中编辑文本

    我正在使用 Action Bar Sherlock 为我的应用程序创建 UI 在将依赖项添加到我的项目等后 我创建了一个活动来测试它 public class PPS extends SherlockActivity Override pu
  • 我如何将值从基本适配器传递到活动

    我正在一个应用程序中工作 我需要将值从基本适配器类传递到活动 这是片段代码 public View getView int position View convertView ViewGroup parent vi convertView
  • 使用Web蓝牙API时找不到移动设备

    我正在学习 Web 蓝牙 API 使用 google 开发控制台 我无法找到我的移动设备 还尝试了 github 上提供的演示 https github com WebBluetoothCG demos https github com W
  • ListView.hasWindowFocus==true 但子视图 hasWindowFocus==false

    有时我注意到 对于 View v v hasWindowFocus false View v getParent hasWindowFocus true 如果我正确理解文档 情况就不应该如此 v getParent 是 ListView 的
  • Zxing库无法解析

    我正在使用 zxing 库开发应用程序 我导入了zxing项目到我的工作场所 当我导入时遇到了一些问题 通过编译项目java 1 7 我做到了 CameraConfigurationUtils失踪 我从library source Reso
  • ListView 中的焦点控件

    上下文 我想要一个不会获得焦点的 ListView 例如不会 当用户触摸它时突出显示该行 然而每个行小部件都有它自己的 OnClickListener 这是我在布局 xml 中指定的内容 android choiceMode none an
  • 将文本视图添加到布局中?

    如果我的按钮不移动 我就无法在按钮上方放置文本视图 我该如何解决这个问题 被困在这个问题上 4 个小时了 这很伤心 因为我正在尝试在我的布局上添加一个文本视图 我的布局中心有 4 个按钮 我只想在四个按钮上方添加一个文本视图 如下所示 Te
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • 带操作栏的 requestFeature

    所以我正在查看 google 的操作栏 api 演示 他们有这个 The Action Bar is a window feature The feature must be requested before setting a conte
  • React Native:即使文件不存在,也会出现 hprof 文件太大错误

    当我尝试跑步时git push origin master在我的 React Native 应用程序中 我得到 file android java pid60072 hprof is 564 94 MB this exceeds GitHu
  • 如何防止机器人程序和垃圾邮件 API 请求?

    我正在使用react native 开发一个Android 应用程序 该应用程序与我正在为该应用程序开发的API 进行通信 该 API 是使用 Laravel 和 Laravel Passport 构建的 我知道 Android 应用程序可
  • Kotlin 1.6.0 的 proguard / R8 删除了数据类元数据

    我有一个包含一些数据类的包 我尝试使用 Kotlin 反射在运行时访问构造函数clazz primaryConstructor 一切都按预期工作 但是当我启用 R8 时 数据类元数据被删除 例如当我检查是否KClass isData它返回
  • android拦截最近的应用程序按钮

    我有一个针对儿童的应用程序 我不希望他们能够单击 最近使用的应用程序 按钮 看起来像两个矩形叠在一起的按钮 我正在负责捕获后退按钮和主页按钮 并且我已经搜索并阅读了很多有关尝试捕获 最近的应用程序 按钮的信息 但大多数人说你不能 或者他们的
  • 如何管理循环器和线程(线程不再消亡!)

    我创建了一个扩展 Thread 的类 以通过非 ui 线程中的 LocationManager 检索用户位置 我将其实现为一个线程 因为它必须根据请求启动并仅在有限的时间内完成其工作 顺便说一句 我必须在线程中添加一个 Looper 对象
  • 如何强制元数据值类型为字符串?

    我在manifest xml中指定了一个元数据 如下所示
  • 从纵向活动返回横向活动时屏幕旋转 3 次

    我的 Android 8 1 平板电脑遇到此问题 该设备的自然方向是横向 我有 2 项活动 A配置了fullSensor 包含一个recyclerview来加载带有缩略图的项目 B 是纵向 包含表面视图
  • 找不到 com.google.gms:google-services:4.1.0 [重复]

    这个问题在这里已经有答案了 Bitrise 构建失败并出现以下错误 配置根项目 src 时出现问题 无法解析配置 classpath 的所有文件 找不到 com google gms google services 4 1 0 在以下位置进

随机推荐

  • 具有多个 Item 布局的 ListView 适配器

    我正在考虑向我的 Android 应用程序添加一个带有缩略图的列表视图 左边是缩略图 右边是文字 有没有办法用单独的 xml 文件填充列表视图 例如 我可以为奥地利 英国 美国等提供单独的 xml 并将它们添加到列表视图中吗 我问的原因是
  • 如何将“实例键”添加到 keras 模型输入以在 gcloud ai-platform 中进行批量预测?

    我正在尝试添加 键 以匹配 Google AI Platform 的批量预测输出 但是我的模型输入只允许一个输入 看起来像这样 input tf keras layers Input shape max len x tf keras lay
  • 可以在 __getitem__ 上使用多个参数吗?

    我正在尝试使用 getitem self x y 在我的 Matrix 类上 但在我看来它不起作用 我仍然不太了解如何使用 python 我这样称呼它 print matrix 0 0 是否有可能使用多个参数 谢谢 也许我可以只使用一个参数
  • 敌人不会在 pygame 中自行移动[重复]

    这个问题在这里已经有答案了 好吧 所以我的敌人只有在我移动角色时才会移动 但有时它也会完全从游戏窗口中产生 还有背景 玩家和敌人 在我按下移动按钮之前不会弹出 我对此感到非常抱歉 lmfao 也对我被告知将它们放在那里以提醒 wtf 的文本
  • 要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet

    我在 Kendo UI 网格中绑定了批量记录 响应是从 Json 返回的 我在使用以下格式时遇到错误 问题代码 方法1 public JsonResult KendoserverSideDemo int pageSize int skip
  • 从 C# 运行 32 位或 64 位 PowerShell

    我构建了一个执行 PowerShell 脚本的 32 位 NET DLL 我需要它能够以 64 位模式运行脚本and 32 bit 我已经知道如何使用命令行执行此操作 C Windows Sysnative cmd c powershell
  • Groovy 中的 __LINE__ 功能

    可以通过以下方式获取当前行号 LINE 在 Ruby 或 Perl 中 例如 print filename FILE line LINE Groovy 中有同样的功能吗 不能直接获取 但您可以通过异常 或可抛出 堆栈跟踪来获取它 例如 St
  • 如何使用 C# 获取打印作业状态

    我可以打印文档 但不知道如何获取其状态 我查阅了很多资源 MSDN http support microsoft com kb 322091 检查工作状态的链接 https stackoverflow com questions 55637
  • 如何在查询中获取 MySQL 状态

    是否可以在 MySQL 查询中使用服务器状态变量 我可以从 显示状态 中看到各种指标 但如何计算派生值 例如查询缓存命中率 show global status like Qcache inserts show global status
  • 如何将 NSArray 元素连接到 NSString 中?

    给定一个 NSString 的 NSArray 是否有一种快速方法将它们连接成一个 NSString 带有分隔符 NSArray stuff NSString combinedStuff stuff componentsJoinedBySt
  • 如何使用 jQuery 循环 JSON 文件

    我正在尝试循环下面的 JSON 文件 statements subject A predicate B object C subject D predicate E object F 正如您所看到的 有两个主语 两个谓语和两个宾语 例如 我
  • 正则表达式,获取两个关键字之间的整个字符串

    我正在做一些输出解析 我需要从两个单词之间抓取一大块文本 例如 如果我正在解析文本 Hi this is an example 我希望能够指定我的两个单词是 Hi 和 example 然后我将取回字符串 this is an 我知道正则表达
  • SQL 中的模糊分组

    我需要修改 SQL 表以对稍微不匹配的名称进行分组 并为组中的所有元素分配标准化名称 例如 如果初始表如下所示 Name Jon Q John Q Jonn Q Mary W Marie W Matt H 我想创建一个新表或向现有表添加一个
  • 比较 Java 中的两个基元数组?

    我知道 Arrays deepEquals Object Object 但这不适用于原始类型 由于数组和自动装箱的限制 请参阅这个相关帖子 https stackoverflow com questions 517751 java gene
  • 在智能手机上选择尺寸为正常尺寸

    在我的网络应用程序中 我创建了一个选择size 5 正确显示 您可以从图像中看到 当我在移动设备上打开应用程序时 我得到的是这个维度 您如何看到尺寸不正确 我通过代码而不是CSS设置尺寸 我再说一遍 这在桌面上有效 但在移动设备上不起作用
  • Swift 3 - 扩展字典数组

    我有这一系列字典 var dicts key1 value1 key2 value2 key1 value3 key2 value4 我应该如何延长Array这样我就有这个功能 dicts values of key1 result val
  • 当隐藏箭头对象时,如何以编程方式识别在图表上绘制向上/向下箭头?

    我知道如何在图表上绘制对象箭头 我通常这样做 ObjectCreate 0 prevHigh OBJ ARROW DOWN 0 Time 0 High highestCandle ObjectSetInteger 0 prevHigh OB
  • 在 Xcode 7 中下载适用于 10.9 和 10.10 的 Mac OS X SDK

    是否可以使用 Xcode 7 在 OS X 10 11 上下载并针对 Mac OS X 10 9 和 10 10 SDK 进行构建 是的 这是可能的 Xcode遗产 https github com devernay xcodelegacy
  • Emacs:如何拉动最后拉动的文本,无论后续杀戮如何?

    我经常发现自己在完成一些杀戮后反复猛拉一些东西 它变成了一个像这样的过程 C y C y M y C y M y M y C y M y M y M y 每次我删除一些文本时 它都会将第一个删除推回到删除环中 以便我需要循环遍历所有删除以返
  • 在android中启动基于文件的Activity

    我正在开发一个应用程序 它列出文件夹中的文件 在 ListView 中 当用户单击其中一个项目时 如果它是一个文件 那么我想启动一个可以处理它的活动 如果有的话 或者如果没有则显示某种错误消息 我怎样才能做到这一点 当然 这不是全部 但我如