您的位置:首页 > 移动开发 > Android开发

Android7.0的手机升级安装APK时,出现FileUriExposedException错误

2017-05-24 13:30 435 查看
今天遇到了个问题,app要升级,下载完apk后打开安装界面时崩溃了。经过网上查看,找到了解决办法:1、在AndroidManifest下的application节点下添加如下代码:
<provider android:name="android.support.v4.content.FileProvider" android:authorities="hylk.com.xiaochekaoqin" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
</provider>
android:authorities为自己的app包名即可。
2、在res/xml文件夹下添加file_paths.xml文件
文件里的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths>
   <external-path path="Android/data/app包名/" name="files_root" /><external-path path="." name="external_storage_root" /></paths>
其中第一个path里的目录换成自己的包名
3、在代码中添加如下代码,用来打开apk到安装界面:
private void openFile(File file) {Intent intent = new Intent(Intent.ACTION_VIEW);Uri data;// 判断版本大于等于7.0if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {// "net.csdn.blog.ruancoder.fileprovider"即是在清单文件中配置的authoritiesdata = FileProvider.getUriForFile(this, "hylk.com.xiaochekaoqin", file);// 给目标应用一个临时授权intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);} else {data = Uri.fromFile(file);}intent.setDataAndType(data, "application/vnd.android.package-archive");startActivity(intent);}
其中
FileProvider.getUriForFile(this, "hylk.com.xiaochekaoqin", file);的第二个参数为自己的包名和1里的一样即可。
// ------------------------------------------------
以上三步完成后,即可在android7.0的手机上升级安装apk
具体可参考其他博主的详细解答:
http://www.cnblogs.com/yongdaimi/p/6067319.html

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android apk
相关文章推荐