我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在android7.0中获取文件的Uri

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在android7.0中获取文件的Uri

本篇文章为大家展示了如何在android7.0中获取文件的Uri,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

//res目录下创建xml,设置要分享的目录,名称定义file_paths<?xml version="1.0" encoding="utf-8"?><paths xmlns:android="http://schemas.android.com/apk/res/android"><external-path name="myFile" path ="" /></paths>// 注册provider<providerandroid:name="android.support.v4.content.FileProvider"android:authorities="com.lzp.fileprovider"android:exported="false"// 赋予Uri权限android:grantUriPermissions="true"><meta-data  android:name="android.support.FILE_PROVIDER_PATHS"  // 设置要分享的路径  android:resource="@xml/file_paths"/></provider>

设置分享的路径有三种:

  • <files-path/>代表的根目录: Context.getFilesDir()

  • <external-path/>代表的根目录:Environment.getExternalStorageDirectory()

  • <cache-path/>代表的根目录: getCacheDir()

provider注册完了之后,就需要稍微修改一下我们的java代码:

Intent i = new Intent(Intent.ACTION_VIEW);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 判断是否是7.0if(Build.VERSION.SDK_INT >= 24){  // 适配android7.0 ,不能直接访问原路径  // 需要对intent 授权  i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);  i.setDataAndType(FileProvider.getUriForFile(context, context.getPackageName() + ".fileProvider",new File(filePath)),"application/vnd.android.package-archive");}else{  i.setDataAndType(Uri.fromFile(new File(filePath)), "application/vnd.android.package-archive");}context.startActivity(i);

在java代码中,我们先判断了当前的手机的系统版本,如果是7.0以下就使用之前的Uri,如果是7.0以上,开始通过Provider来获取加密后的Uri。

最终得到的Uri的格式:

content://com.lzp.fileprovider/myFile/xxxxx.apk

看来主要是把分享出去的路径进行了加密,不能直接看到文件的完整路径。

上述内容就是如何在android7.0中获取文件的Uri,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在android7.0中获取文件的Uri

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在android7.0中获取文件的Uri

本篇文章为大家展示了如何在android7.0中获取文件的Uri,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。//res目录下创建xml,设置要分享的目录,名称定义file_paths
2023-05-30

如何在 PHP 中获取文件扩展名

在本文中,我们将介绍在 PHP 中获取文件扩展名的方法。使用 pathinfo() 函数使用 SplFileInfo结构和 getExtension’函数在 PHP 中使用 pathinfo() 函数获取文件扩展名我们将使用内置
如何在 PHP 中获取文件扩展名
2024-02-27

gitee中如何获取文件

Gitee是中国最大的基于Git的开源社区,它为开发者提供了一个完备、稳定、易用的文档管理与协作平台。在Gitee上,我们可以很方便地托管我们的所有代码和文件,并且我们还可以方便地分享我们的代码和文件。在Gitee上,我们有时候需要获取某些
2023-10-22

如何在Golang中获取mp3文件的持续时间?

在Golang中获取mp3文件的持续时间是一个常见的需求。php小编小新将为您介绍一种简单有效的方法。首先,我们需要使用第三方库来处理mp3文件。推荐使用go-audio库,它提供了一些便捷的功能。接下来,我们需要使用go-audio库的D
如何在Golang中获取mp3文件的持续时间?
2024-02-09

python 如何获取文件夹中的全部文件

在神经网络准备训练集的时候,经常需要从文件夹中读取全部图片。经常遇到的有两种方式,一种是os.listdir()另一种是glob,本文结合示例代码对python获取文件夹中全部文件讲解的非常详细,需要的朋友参考下吧
2023-01-07

如何在Android中将Uri与文件路径进行转换

如何在Android中将Uri与文件路径进行转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。public class GetPathFromUri { /**
2023-05-30

Linux中如何获取文件大小

Linux中如何获取文件大小,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码实现:unsigned long get_file_size(const char *filena
2023-06-17

JAVA文件中如何获取路径

这篇文章主要介绍了JAVA文件中如何获取路径,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 基本概念的理解`绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL
2023-05-30

php中如何只获取文件名

php中如何只获取文件名?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php只获取文件名的方法:首先创建一个PHP示例文件;然后通过“basename($file_path
2023-06-15

java中如何获取JVM dump文件

这篇文章主要介绍了java中如何获取JVM dump文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JVM dumpjava内存dump是jvm运行时内存的一份快照,利用它
2023-06-15

vba如何获取文件夹内的文件名

要在VBA中获取文件夹内的文件名,您可以使用FileSystemObject对象的GetFolder方法来获取文件夹对象,然后使用Files集合来获取文件集合。 下面是一个示例代码:```vbaSub GetFilesInFolder()D
2023-09-15

jquery如何获取file文件

在HTML中,``被用于选择文件上传。您可以使用jQuery来获取选定的文件。首先,给文件输入字段添加一个id属性,以便能够通过jQuery选择它:```html```然后,使用jQuery选择器选择该文件输入字段,并使用`prop()`函
2023-08-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录