栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android日常开发 - Android7.0获取文件Uri

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android日常开发 - Android7.0获取文件Uri

Android日常开发 - Android7.0获取文件Uri

本文约3千字,新手阅读需要6分钟,复习需要3分钟 【收藏随时查阅不再迷路】

关于作者

已经工作三年的95后程序员,坐标上海。平时在公司写Android原生App,业务时间会抽空学习Java后端,目标是成为全栈工程师,志同道合的可以私我聊聊haha。加入CSDN快4年了,看了很多优秀作者的博客收获很多。后面的时间里,我写也会整理总结一些工作中使用到的知识分享出来。我的座右铭:人生在勤,不索何获。大家一起努力加油吧

正文部分

众所周知,Android7.0之前获取文件的Uri直接调用Uri.parse(path)即可,生成的Uri是file://xx/xx,也就是文件的本地真实路径。Android7.0后不再允许传递本地真实路径,因为这样不安全,并且给出解决方案,使用FileProvider选择性地将封装过的Uri分享给外部,从而提供应用的安全性

1、新建一个file_paths.xml,在/res/xml目录下

这个文件的作用是用来指定共享路径

1、文件的根标签是paths,下面介绍了所有的子标签,平常使用选择一个子标签进行配置即可!


  
  
  
   
  
   
  
   
  
	 
  
	 
  

2、配置一个具体的file_paths.xml文件



    
    

2、AndroidManifest设置provider

  	
    

      	
        

    

3、获取Uri
//创建一个File
File tempFile=File.createTempFile("file_test",".jpg",Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
//转为Uri
Uri uri = FileProvider.getUriForFile(this,"com.jw.firstapp.provider",tempFile);
4、一些补充

第一步的时候我们设置了共享路径path的name,我设置的是my_image;

第二步的时候我们设置了authorities,我设置的是com.jw.firstapp.provider;

第四步设置了文件名为file_test.jpg

那么最后生成的Uri是什么样的呢?

content://com.jw.firstapp.provider/my_image/file_test.jpg

总结一下:content://AndroidManifest中设置的authorities名/共享路径path的name/文件名

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号