如何在android7.0中获取文件的Uri-创新互联

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

创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为网站制作、做网站重庆APP开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
//res目录下创建xml,设置要分享的目录,名称定义file_paths





// 注册provider



设置分享的路径有三种:

  • 代表的根目录: Context.getFilesDir()

  • 代表的根目录:Environment.getExternalStorageDirectory()

  • 代表的根目录: 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-创新互联
文章来源:http://azwzsj.com/article/dpsipj.html