首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

需要在安卓pie中使用Intent.ACTION_OPEN_DOCUMENT的选定文件的绝对文件路径

在安卓Pie中,使用Intent.ACTION_OPEN_DOCUMENT来选定文件的绝对文件路径的步骤如下:

  1. 首先,在AndroidManifest.xml文件中添加以下权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

这将允许应用程序读取外部存储器上的文件。

  1. 在你的Activity中,创建一个Intent对象,并设置Action为Intent.ACTION_OPEN_DOCUMENT:
代码语言:txt
复制
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
  1. 设置Intent的类型为文件类型:
代码语言:txt
复制
intent.setType("*/*");

这将允许用户选择任何类型的文件。

  1. 启动Activity并等待结果:
代码语言:txt
复制
startActivityForResult(intent, REQUEST_CODE);

其中,REQUEST_CODE是一个自定义的整数值,用于在接收结果时进行标识。

  1. 在onActivityResult方法中,获取选定文件的绝对文件路径:
代码语言:txt
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        Uri uri = data.getData();
        String filePath = uri.getPath();
        // 使用选定文件的绝对文件路径进行后续操作
    }
}

需要注意的是,Android Pie引入了Scoped Storage的概念,限制了对外部存储器的直接访问。因此,获取到的文件路径可能是一个URI,而不是传统的绝对文件路径。如果需要使用绝对文件路径,可以通过以下方式进行转换:

代码语言:txt
复制
String filePath = FileUtils.getPath(context, uri);

其中,FileUtils是一个自定义的工具类,用于将URI转换为绝对文件路径。你可以根据具体需求自行实现该工具类。

推荐的腾讯云相关产品:腾讯云对象存储(COS)

  • 概念:腾讯云对象存储(COS)是一种海量、安全、低成本、高可靠的云存储服务,适用于存储大量非结构化数据,如图片、音视频、文档等。
  • 分类:云存储服务
  • 优势:高可靠性、低成本、强大的数据处理能力、灵活的权限管理、全球部署、与其他腾讯云产品的无缝集成等。
  • 应用场景:网站和应用程序的静态资源存储、大规模数据备份与归档、多媒体内容存储与分发、数据共享与协作等。
  • 产品介绍链接地址:腾讯云对象存储(COS)

请注意,以上答案仅供参考,具体实现方式可能因应用程序的需求和环境而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

怎么保存微信文件视频_微信收藏夹文件路径

大家好,我是架构君,一个会写代码吟诗架构师。今天说一说怎么保存微信文件视频_微信收藏夹文件路径,希望能够帮助大家进步!!!...iPhone微信小视频保存到本地三种方法 思路:借助第三方工具来完成。 一、借助手机 如果你身边恰好有手机可以使用就方便很多。...具体步骤: 1、在上登陆另一个微信号 2、把小视频转发到手机 3、打开手机文件管理器,依次打开微信小视频默认保存路径sdcard0/Tencent/MicroMsg/最长后缀名称文件夹/video...找到小视频复制到你目标位置即可 缺点: 需要一台手机,需要两个微信帐号。...三、电脑下载第三方管理程序 以iTools为例 1、下载安装itools 2、手机连接电脑 3、iTools---应用程序---选择微信------文件共享依次选择 /Library/WechatPrivate

2.5K20

对于文件综合操作

SD卡文件 /** * 将文件列表每项路径保存到目标文件 * * @param list 列表 * @param target 目标路径 */ public void writeList2File...,每个文件夹大小路径都保存到文件中了。...将信息保存到文件.png ---- 二、空文件夹 1.空文件检测比较简单,将加入列表条件限定一下即可 /** * 获取某文件夹下所有空文件夹 * * @param dir 根文件夹...,将比较条件向后推延,让用户自定义条件来更灵活控制 拿到空文件夹,拿到大于1000M文件夹,拿到大小等于32B文件夹,操作流基本一直,不同只有比较条件 因此,写一个比较接口,将实现推迟到用户使用时...- 后记:捷文规范 1.本文成长记录及勘误表 项目源码 日期 备注 V0.1--无 2018-10-26 对于文件综合操作 2.更多关于我 笔名 QQ 微信 爱好 张风捷特烈 1981462002

1.6K20
  • 如何在 MSBuild 项目文件 csproj 获取绝对路径

    通常我们能够在 csproj 文件仅仅使用相对路径就完成大多数编译任务。但是有些外部命令执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同含义。...这个时候,就需要将相对路径在 csproj 中转换为绝对路径使用。 本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。...在 MSBuild 4.0 ,可以在 csproj 编写调用 PowerShell 脚本代码,于是获取一个路径绝对路径就非常简单: 1 [System.IO.Path]::GetFullPath...$(_WalterlvAbsolutePath) 属性来获取绝对路径。...你可以阅读我其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径: 项目文件已知属性(知道了这些,就不会随便在 csproj 写死常量啦) - walterlv 如何更精准地设置

    25730

    解决XML文件声明高度 宽度无效问题

    搬砖时候,需要在popupwindow里嵌套一个ListView用来展示动态菜单。重写了ListView高度为所有的Item高度之和。 item: <?...但是添加到ListView时候,却发现在手机上显示高度明显大于45dp。 image 根据图片我们可以看到,下面三个按钮显示高度跟第一个显示高度,差了差不多两倍多高度。...原来原因在这里: 我们在是使用 inflater.inflate(R.layout.item_popumenu, root, attachToRoot); 来添加到父布局,但是对于这几个参数却没有去研究...如果root不为null,attachToRoot设为true,则会给加载布局文件指定一个父布局,即root。 3....如果root不为null,attachToRoot设为false,则会将布局文件最外层所有layout属性进行设置,当该view被添加到父view当中时,这些layout属性会自动生效。 4.

    2K30

    BlueStacks蓝叠模拟器安装Magisk教程

    作为适配Hyper-V模拟器,蓝叠模拟器一直是我认为最好用模拟器,但是今天为了给模拟器安装magisk,我先后下载了逍遥模拟器,雷电模拟器。...环境BlueStacks(7.0, 9.0, 11.0, 其他自测)ADB开启ROOT首先找到蓝叠模拟器安装路径,一般国际版目录为BlueStacks_nxt,国内版为BlueStacks_nxt_cn...,找到此目录下bluestacks.conf文件,随后找到如下这两行。...设置读写System首先不同版本对应不同目录,大概是下面的对应关系Rvc64 = Android 11.0Pie64 = Android 9.0Nougat64 = Android 7.0然后找到蓝叠安装目录下...使用adb删除/system/xbin/su文件就行了(base) PS C:\Users\Administrator> adb shellb0q:/ $ sub0q:/ # cd /system/xbinb0q

    35220

    Python 编程反斜杠 “” 作用:作为续行符和转义字符,处理文件路径和正则表达式时特别注意。

    当你想要在代码中断开一行长字符串而不想实际在字符串内部加入换行符时,可以使用反斜杠。这样做目的是为了提高代码可读性,同时保持字符串连贯性。...(s) print(match) start, end = match.span() print(s[start: end]) print('\\Python') 结果如下所示: 在文件路径,Python...在正则表达式,需要进行两次转义才能匹配反斜杠 \。 希望这些解释和示例能帮助你更好地理解和使用 Python 反斜杠 \ !...总的来说,当在 Python 中使用反斜杠 \ 时,需要注意其作为转义字符特性,以及在文件路径和正则表达式使用。 ️...re 模块,如何使用反斜杠 “” 分割字符串?

    1.4K00

    C++核心准则:SF.12:使用双引号形式#include语句包含相对路径文件,用角括号形式包含所有其他位置文件

    #include语句包含相对路径文件,用角括号形式包含所有其他位置文件 Reason(原因) The standard provides flexibility for compilers to...尽管如此,原则是用引号形式引入存在于使用#include语句文件相对路径(属于相同组件或项目的)文件,而使用角括号引入任何其他场所文件(如果可能)。...例如一个典型场景是当#include""检索算法首先检索本地相对路径时,使用这种形式参照一个非本地相对路径文件可能就意味着如果一个文件出现在在本地相对路径(例如包含文件被移动到新位置),它将在期待包含文件之前被发现...have clients include those files using the relative path #include 库生成者应该将它们文件放到一个目录并让使用使用相对路径...某种可以识别应该使用使用""进行包含文件检查。

    2.3K41

    React Native介绍及开发环境(Mac)搭建

    对于所谓中小公司来说,有一个注重应用app几乎用不上原生开发出马。 当然,现在技术框架更多了。...因此RN如果要做全套,起码需要一台MBP+一台iphone+一台机。 此外ios开发者账号是要钱(每年800+)。所以本系列文章都会以开发为主。 准备 假如安装node10以上版本。...展开Android 9 (Pie)选项,确保勾选了下面这些组件(): Android SDK Platform 28 Intel x86 Atom_64 System Image(官方模拟器镜像文件使用非官方模拟器不需要安装此组件...具体做法是把下面的命令加入到~/.bash_profile文件: 译注:~表示用户目录,即/Users/你用户名/,而小数点开头文件在 Finder 是隐藏,并且这个文件有可能并不存在。...这里所指设备既可以是真机,也可以是模拟器。推荐开发环境:Mac系统 + ⼀一部廉价⼿手机 测试adb连接 () 1.

    2.9K20

    逆向系列篇:工具总结

    语法高亮,基于关键字项目内搜索,可自定义外部工具,简化了用户在应用各种琐碎工作。...2)简单配置 如果打开报错,就修改下jdk路径 加载APKtool工具 默认情况下会自带一个apktool工具,这里加载额外apktool Android Killer简单使用 对apk进行反编译...代码 简单使用 在smali文件按q可以反编译回java代码 按Ctrl+b下断点 三、调试工具 这部分为调试工具,主要先介绍下载及安装,JEB动态调试在本文第六节中介绍,其余IDEA和...工具,将apk文件拖入可以查看是否加壳 3、模拟器 如果没有真机做实验情况下,可以使用模拟器用于实验,大部分模拟器都可以完成实验内容,但是注意模拟器也是一个虚拟机,不建议在虚拟机内安装模拟器...这部分介绍如何使用工具抓取手机上流量,主要是BurpSuite和Fiddler工具,还有安装证书抓取HTTPS过程。

    8.9K31

    用Linux Deploy让手机成为Linux服务器

    是基于Linux,那么是不是可以把手机当服务器用呢?...,有点坑在这里,因为所谓“内部”和“外部”并不是绝对,和手机设置默认储存位置有关,如果手机设置默认储存为本机的话,那么${EXTERNAL_STORAGE}其实代表系统文件管理器能看到目录地址...,${ENV_DIR}代表文件系统内部地址,也就是root之后才能看到那部分目录(有点绕啊...)...总之我想表达是,最好使用绝对路径防止路径混乱,而绝对路径是从root之后根目录算起 其他配置根据自己实际情况配置即可,我给他他5G,本地化记得选,防止中文乱码,没选的话也可以进Debian进行配置...,都是使用同一个sd卡,不需要重复复制数据文件进linux系统

    8.7K21

    【错误记录】Groovy工程文件查找策略 ( main 函数需要使用 srcmaingroovyScript.groovy | Groovy 脚本直接使用代码相对路径 )

    JavaClass.main(JavaClass.java:22) 二、解决方案 ---- Groovy_Demo 是工程根目录名称 ; 这个错误本身很简单 , 但是涉及到 Java 与 Groovy 路径查找机制不同...; Java 类 JavaClass 位于 Groovy_Demo\src\main\groovy 目录下 , 要在该 Java 类调用同目录 Script.groovy 脚本 ; 此处必须使用完整路径...“src/main/groovy/Script.groovy” , 才能查找到 “Script.groovy” 脚本 ; Java 类调用 Groovy 脚本 , 需要使用 “src/main/groovy...另外一个 Groovy 脚本 , 如果两个 Groovy 脚本在同一个目录 , 可以直接使用相对路径 " Script.groovy " 进行调用即可 ; 参考 【Groovy】Groovy 脚本调用...( Groovy 脚本调用另外一个 Groovy 脚本 | 绑定作用域 binding 变量分析 | Binding 类 variables 成员分析 ) 博客源码 ;

    2.5K30

    TRTCMLVBIM案例:SDK用户日志提取与管理一种实现方案

    本文档分两部分,PART1描述log文件本地位置及日志解压办法,PART2描述&IOS端日志文件上传cos方案。...本文仅作为参考,补充在某些特殊情况下,需要获取管理用户本地日志文件,来分析某些问题时使用。PART1:本地log路径默认输出文件路径如下表格。可修改输出文件路径、可过滤日志等级、可关闭日志输出。...>标签debug属性,使用vConsole记录打印信息PlayeriOS&&webSmartiOS&&小程序TRTCiOS&Mac&&小程序&Windows&WebProfessionaliOS...&EnterpriseiOS&IMSDKIMiOS&Mac&&小程序&Windows&WebiOS&Mac:日志默认路径在 App 目录下:Library/Caches/imsdk_YYYYMMDD.log...是因为加密“参数”是带空参数,所以可以不带参解密(3)如何打开xlog解密xlog需要运行mars解码程序,需要使用 log 解压缩工具,运行解压工具,需要在python2环境运行。

    1.6K50
    领券