本篇文章为大家展示了如何在android7.0中获取文件的Uri,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、富锦网络推广、微信小程序开发、富锦网络营销、富锦企业策划、富锦品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供富锦建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
//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 <provider android: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.0 if(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,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
当前标题:如何在android7.0中获取文件的Uri
转载注明:https://www.cdcxhl.com/article2/igpsic.html
成都网站建设公司_创新互联,为您提供虚拟主机、面包屑导航、App开发、网站维护、网站营销、网站改版
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联