简介

Android 7.0开始,系统修改了安全机制:

限定应用在默认情况下只能访问自身应用数据。所以当我们想通过File对象访问其它package数据时,就需要借助于ContentProvider、FileProvider这些组件,否则会报FileUriExposedException异常。

由此,当我们在app内想要访问SD卡download目录下的apk文件就会报错。这里需要借助FileProvider对公共目录申请权限。

代码实现

首先需要在Manifest的application标签下添加FileProvider的声明:

android:name="android.support.v4.content.FileProvider"

android:authorities="${applicationId}.fileProvider"

android:grantUriPermissions="true"

android:exported="false">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/file_paths" />

配置file_paths.xml文件:

目录截图

name="download"

path="" />

name="Download"

path="" />

安装apk的相关代码:

//判断是否是AndroidN以及更高的版本

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

installIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

Uri contentUri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + "" +

".fileProvider", new File(Uri.parse(getLatestBackendDownloadPkgUri()).getPath()));

installIntent.setDataAndType(contentUri, "application/vnd.android.package-archive");

} else {

installIntent.setDataAndType(Uri.parse(getLatestBackendDownloadPkgUri()),

"application/vnd.android.package-archive");

installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

}

mContext.startActivity(installIntent);

}

android 7 apk 安装程序,Android 7.0 apk安装相关推荐

  1. Windows安装程序初始化时出错。安装程序将立即关闭。(原)

    安装Microsoft .Net Framework 1.1时出错:Windows安装程序初始化时出错.安装程序将立即关闭.错误如下图所示: [img]http://msdn.iteye.com/up ...

  2. win7 安装.Net framework 4.0出现 安装不成功,错误代码0x80240037 的解决方法

    这里写自定义目录标题 win7 安装.Net framework 4.0出现 安装不成功,错误代码0x80240037 的解决方法 第一种解决方案 第二种方法 win7 安装.Net framewor ...

  3. 无法通过windows installer服务安装此安装程序包。您必须安装带有更新版本windows Installer服务的Windows

    无法通过windows installer服务安装此安装程序包.您必须安装带有更新版本windows installer服务的Windows 出现这个问题不让安装程序,可以到微软网站更新Windows ...

  4. Mysql8.0.12安装教程方法 Mysql8.0.12安装教程

    Mysql8.0.12安装教程方法 Mysql8.0.12安装教程 MySql安装教程 - 首先,MySql官网下载地址: 官网下载地址 主要下载server版本的 Archive版本,不需要安装解压 ...

  5. Win11提示无法安装程序怎么办 Win11提示无法安装程序的解决方法

    现在已经有不少小伙伴已经安装了Windows11系统,但有一些小伙伴在使用Win11系统安装程序的时候提示无法安装此程序包,那么碰到这种问题应该怎么办呢?下面就和小编一起来看看有什么方法吧. Win1 ...

  6. mysql8.0.12怎么用_Mysql8.0.12安装教程方法 Mysql8.0.12安装教程

    Mysql8.0.12安装教程方法 Mysql8.0.12安装教程 MySql安装教程 - 首先,MySql官网下载地址: 官网下载地址 主要下载server版本的 Archive版本,不需要安装解压 ...

  7. python下载可执行安装程序_如何下载并安装python

    1 首先,需要到python的官方网站下载python的安装包.python官网的链接地址:https://www.python.org 2 打开官方网站,光标移到Downloads,选择window ...

  8. Windows8.1安装tools提示:安装程序无法验证是否已安装所需的Microsoft更新KB2919355的问题详解

    虚拟机下安装Windows8.1安装tools提示:安装程序无法验证是否已安装所需的Microsoft更新KB2919355.如果存在此更新,请继续安装. 因为Windows2012 R2缺少两个更新 ...

  9. “Windows Server 2012 R2安装VMwareTools提示“安装程序无法验证是否已安装所需的Microsoft更新KB2919355”的解决办法

    Windows Server 2012 R2安装VMwareTools提示"安装程序无法验证是否已安装所需的Microsoft更新KB2919355 网上查询资料说是Windows Serv ...

  10. sql正在安装html帮助,SQL2000安装卡在了“安装程序正在启动服务器并安装您选择的配置”...

    今天电脑上(winxpsp3)安装sql2000个人版,出现了问题.SQL2000安装卡在了"安装程序正在启动服务器并安装您选择的配置", 停止不动.系统未死,程序未死. 先是出现 ...

最新文章

  1. linux下yum源软件服务器的搭建与使用
  2. 由点及面,专有云ABC Stack如何护航云平台安全?
  3. C++ POD(Plain Old Data)类型
  4. flink的udtf中String[]转String数组
  5. 我心目中未来的计算机200字,我心目中未来的计算机.doc
  6. 开会浪费时间?高效会议的秘诀,是用数据支撑
  7. 【Arthas】Arthas 类查找和反编译原理
  8. 【Shiro】六、Apache Shiro Session管理
  9. Linux Shell 使用技巧
  10. textview 复制粘贴_Android TextView使用剪贴板复制粘贴
  11. python语言程序设计实践教程答案实验五_Python程序设计实验五
  12. 射频卡读写器c#源码
  13. java解压zip和rar文件
  14. PHP_微信小程序(1)
  15. emoji语言抽象话大全_当抽象话也成为一种暗语
  16. html表格相间颜色,用CSS怎么做出双色相间表格?
  17. veeam备份oracle数据库,Veeam Explorer for Oracle v10:即时发布数据库!
  18. Mac运行已安装软件提示“XXX 已损坏,打不开。移到废纸篓/推出磁盘映像。”解决方法
  19. 转自科学松鼠会------压缩感知的基础认识
  20. PHP 字符串限制字数和获取字符串字数

热门文章

  1. html5显示文件后缀,怎么显示文件后缀名,教您如何让电脑显示文件后缀名
  2. android自定义系统参数,Android系统Camera参数设置
  3. pacemaker使用
  4. 不错的Python社区
  5. 多媒体计算机设计原则,多媒体课件制作应当遵循的几个基本原则
  6. 利用计算机制作多媒体的步骤,【计算机教学论文】计算机教学中多媒体课件的设计与制作(共4966字)...
  7. 什么是 C/C++?
  8. 《重庆市新型基础设施重大项目建设行动方案(2020—2022年)》来啦!
  9. 衣原体感染——原因、症状、治疗及预防
  10. WDF驱动和3环通信