在更新操作时,下载新apk之后,往往需要自动安装新apk,用以下代码即可安装下载在本地的apk文件(apkFile)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
startActivity(intent);

////////////////////////////////////////////////////////////////////////////////

对于7.0之后,应用间共享文件,需要使用 content:// URI,并授予 URI 临时访问权限,而不再支持file:// URI,否则会抛出异常

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri apkUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", apkFile);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
startActivity(intent);

对于FileProvider的配置,参考

Android 7.0下,拍摄照片报错

最新文章

  1. Java多线程整理(li)
  2. 使用Azure REST API创建虚拟机
  3. 多线程socket编程示例
  4. SpringAOP所支持的AspectJ切点指示器
  5. iOS block进行页面之间传值
  6. 《samba服务配置的文本》
  7. mysql数据库表间内外链接详解
  8. Javascript作用域问题的构造函数的变量
  9. Jedis连接
  10. sql 通过存储过程和自定义类型批量新增数据
  11. Intellij 解除(去除)SVN关联
  12. WPF中的数据绑定
  13. docker-compose 案例
  14. 20165314 2016-2017-2 《Java程序设计》第7周学习总结
  15. 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  16. CRM WEB UI 01 BOL向导创建的搜索
  17. windows下dump文件调试
  18. spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战
  19. vue深入了解组件——Prop
  20. 联想服务器thinkserver rd650安装 windows server 2008 r2

热门文章

  1. OpenCV 2.4.13 编译使用(VS2015下)
  2. source和./的区别
  3. SQL表新增触发(触发器)
  4. Modbus总线CRC16效验算法C语言
  5. iOS之tabBar随tableView的滑动而隐藏/显现
  6. IBatis和Hibernate区别
  7. 无废话ExtJs 入门教程十七[列表:GridPanel]
  8. input上传按钮美化
  9. C++ 定义全局数组
  10. 三言两语之js事件、事件流以及target、currentTarget、this那些事