美文网首页
整理: 解决Android7.0以上文件报FileUriExpo

整理: 解决Android7.0以上文件报FileUriExpo

作者: 二鸭儿 | 来源:发表于2018-05-09 17:46 被阅读114次

    最近项目Android编译版本改为targetSdkVersion26, 之前隐藏的版本问题暴露出来, 尤其是文件第三方打开及Apk更新问题,这里记录下7.0以后文件相关问题

    问题描述:

    安装apk的代码一般写法如下,网上随处可以搜到:

    public static void installApk(Context context, File file) {  Intent intent = new Intent(Intent.ACTION_VIEW);      Uri data = Uri.fromFile(file);      intent.setDataAndType(data, "application/vnd.android.package-archive");      context.startActivity(intent);  }  

    然而,当我们在Android7.0手机中执行时,会发现报如下错误日志

    Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/net.csdn.blog.ruancoder/cache/test.apk exposed beyond app through Intent.getData()     at android.os.StrictMode.onFileUriExposed(StrictMode.java:1799)     at android.net.Uri.checkFileUriExposed(Uri.java:2346)     at android.content.Intent.prepareToLeaveProcess(Intent.java:8933)     at android.content.Intent.prepareToLeaveProcess(Intent.java:8894)     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1517)     at android.app.Activity.startActivityForResult(Activity.java:4224)     at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50)     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79)     at android.app.Activity.startActivityForResult(Activity.java:4183)     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)     at android.app.Activity.startActivity(Activity.java:4507)     at android.app.Activity.startActivity(Activity.java:4475)  

    解决方案及介绍 一 (详细)

    解决方案,由衷感谢

    相关文章

      网友评论

          本文标题:整理: 解决Android7.0以上文件报FileUriExpo

          本文链接:https://www.haomeiwen.com/subject/aydorftx.html