Android安装apk文件并适配Android 7.0详解

首先在AndroidManifest.xml文件,activity同级节点注册provider:

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

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

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

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

将apk文件下载到此路径:

String cachePath = (

getExternalFilesDir("upgrade_apk") +

File.separator +

getPackageName() +

".apk");

在res目录xml文件夹下创建名为file_paths的文件:upgrade_apk代表上面保存路径的文件夹名称,可随意更改,相同即可。

最后编写代码,区分不同Android系统版本号,安装apk(注意:【com.apkinstall.demo】要替换自己应用的包名)

/**

* 安装 apk 文件

*

* @param apkFile

*/

public void installApk(File apkFile) {

Intent installApkIntent = new Intent();

installApkIntent.setAction(Intent.ACTION_VIEW);

installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);

installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {

installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "com.apkinstall.demo.file_provider", apkFile), "application/vnd.android.package-archive");

installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

} else {

installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");

}

if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) {

startActivity(installApkIntent);

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

android apk安装过程,Android安装apk文件并适配Android 7.0详解相关推荐

  1. android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解

    Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...

  2. linux中realplayer.rpm格式的软件安装,realplayer安装过程中出现的文件依赖问题

    realplayer安装过程中出现的文件依赖问题 发布时间:2010-07-20 14:26:21来源:红联作者:kevin_freedom [i=s] 本帖最后由 kevin_freedom 于 2 ...

  3. rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决

    rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决 2010-08-28 23:10 在CentOS 5上安装Ora ...

  4. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  5. mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...

    MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...

  6. CentOS 8.1安装MySQL 8.0详解

    CentOS 8.1安装MySQL 8.0详解 引言 一.YUM在线安装 0.删除已安装的MySQL 1.添加MySQL Yum Repository 2.选择MySQL版本 3.安装MySQL 4. ...

  7. MVP模式的Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题

    Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题 直接上代码 首先添加拍照需要的权限 <uses-permission android:name="andr ...

  8. Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

    Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 文章目录 Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 前言 一.数据库的安装前准备,前提 ...

  9. android禁止下拉刷新,Android开发之无痕过渡下拉刷新控件的实现思路详解

    相信大家已经对下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅满目,然而有很多在我看来略有缺陷,接下来我将说明一下存在的缺陷问题,然后提供一种思路来解决这一缺陷,废话不多说!往下看嘞! 1.市面一些下 ...

最新文章

  1. 如何在node.js中发出HTTP POST请求?
  2. java文件下载大小限制,完整PDF
  3. JavaWeb学习总结(九)--JDBC入门
  4. Java中字符串和数字间转换
  5. java异常库,java中的异常详解
  6. authinfo.php,【nginxphp】后台权限认证方式
  7. Java LocalDate类| minusWeeks()方法与示例
  8. mongodb和SQL语句对应查找表
  9. 电脑时代计算机应用,【2017年整理】计算机应用与发展的神话时代.docx
  10. 请教如何保存matlab仿真出来的图,如何保存Matlab绘制出来的图像
  11. gsp 页面 html.dat,grails2.3.x在gsp显示html
  12. stm32固件库下载地址
  13. 各地区磁偏角和磁倾角查询网址及方法
  14. 空洞卷积详解(输入输出大小分析)
  15. 传奇3单机显示服务器进不去,传奇3私服单机 数据库连接不上 dafe
  16. 美国卡内基梅隆大学计算机排名,美国卡内基梅隆大学世界排名情况
  17. 核心设计——多种电源设计应用分享
  18. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库
  19. 资深投资人: VC的“增值平台”就是一坨狗屎
  20. 【MATLAB】MATLAB 仿真数字基带传输系统 — 双极性基带信号(余弦滚降成形脉冲)的眼图

热门文章

  1. 吃了这么久的外卖,灵机一动用python采集一下~
  2. 如何实现《电子签名法》要求的可靠电子签名?
  3. 【微信小程序】tabBar的使用
  4. ​新浪页游助手 v2.0.1 官方版
  5. uni-app使用iPhone手机真机调试(window)
  6. Ubtun系统如何测试网速
  7. 电装实验报告计算机联网,电装实验报告.doc
  8. chrome浏览器扩展安装
  9. 使用pygame.surface.subsurface() 来实现精灵动画
  10. 智能骨传导蓝牙耳机该如何选,分享几款不错的骨传导蓝牙耳机