1.权限申请

8.0以后需要。

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

2.清单文件

8.0后通过FileProvider方式

<providerandroid:name="android.support.v4.content.FileProvider"android:authorities="${applicationId}.provider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths" />
</provider>

其中 file_paths 对应的文件内容,表示源的来源:

// 该方式提供在外部存储区域根目录下的文件。它对应 Environment.getExternalStorageDirectory返回的路径:eg:"/storage/emulated/0";
<external-path name="name" path="path" />// 该方式提供在应用的外部存储区根目录的下的文件。它对应 Context#getExternalFilesDir(String) Context.getExternalFilesDir(null)返回的路径。
<external-files-path name="name" path="path" />

3.apk的下载

省略……

4.安装

private void installApp(File file){try {Intent intent = new Intent(Intent.ACTION_VIEW);intent.putExtra("name", "");intent.addCategory("android.intent.category.DEFAULT");String packageName = getPackageName();Uri data;if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);data = FileProvider.getUriForFile(this, packageName + ".provider", file);} else if (Build.VERSION.SDK_INT >= 24){intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);data = FileProvider.getUriForFile(this, packageName + ".provider", file);} else {data = Uri.fromFile(file);}intent.setDataAndType(data, "application/vnd.android.package-archive");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);} catch (Exception e) {e.printStackTrace();}
}

Android 下载apk包并安装相关推荐

  1. android 下载apk并自动安装,Android下载apk并自动安装(兼容Android7.0)

    1.开启服务下载新版本 View.OnClickListener checkVersion = new View.OnClickListener () { @Override public void ...

  2. android下载后的app自动安装,Android 7.0 下载APK后自动安装

    随着Android版本越来越高,Android对隐私的保护力度也越来越大.这些隐私权限的更改在为用户带来更加安全的操作系统的同时也为开发者带来了一些新的任务.如何让你的APP能够适应这些改变而不是崩溃 ...

  3. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)

    前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask     ...

  4. 微信中不能下载apk包的问题

    现在微信分享的功能很多,从分享的链接下载apk安卓包是很正常的,但是微信不让下载apk包,只能通过浏览器来下载,但是这要给用户一个提示吧,不然用户不知道 下面我们来实现,引导用户通过浏览器来下载apk ...

  5. Android 下载APK 安装APK 打开APK

    今天有了一个这样的需求 :下载一个apk文件,然后当你下载完成后,按钮的文字发生改变,变成点击安装,然后安装完成之后,变成打开. 这是下载apk的方法: ? 1 2 3 4 5 6 7 8 9 10 ...

  6. android 下载apk安装后自动启动,下载apk并启动安装

    本篇实现现在网络上的apk并启动安装程序. #### 权限 写入权限和网络访问权限 ~~~ ~~~ #### 变量 ~~~ private DownloadManager downloadManage ...

  7. 数据包覆盖Android,安卓数据包怎么安装 安卓游戏数据包安装教程

    安卓数据包怎么安装?安卓数据包放在哪?这是很多安卓单机游戏爱好者经常问的问题,下面小编就为各位玩家带来:安卓游戏数据包安装教程,诸如数据包存放好后,为什么还是不能正常玩都能为您解答~ 安卓数据包怎么安 ...

  8. 兼容android10下载apk后无法安装问题

    android兼容问题比较多,不仅仅是各种型号手机的兼容,SDK版本升级也得兼容,这不,今天发布了一个APK,android 9以下手机能在线下载最新APK后能安装,android 10就不行了,网上 ...

  9. android 更新apk 应用为安装,应用未安装!从Android Studio构建安装APK时出错 - java

    通过android studio生成签名的apk后,在安装发布的apk时,手机显示错误: 应用未安装 我在这个应用程式中遇到这个问题.我已经在处理它,并安装了与安装它相同的apk. 我已经尝试过这些: ...

最新文章

  1. mybatis学习笔记(13)-延迟加载
  2. (四) prometheus + grafana + alertmanager 配置Kafka监控
  3. FPGA之道(74)Verilog生成语句
  4. 我眼中的JavaScript函数式编程
  5. 推荐 15 款常用开发工具
  6. Jar包部署-指定jsp打包配置
  7. 2017西安交大ACM小学期 神器插座 KMP匹配
  8. idea debugger console 不见了--还原 console 图标
  9. 【clickhouse】clickhouse Exception: Table is in readonly mode
  10. bash脚本基础知识
  11. NYOJ813 - 对决
  12. 为什么Zappos花钱让新员工走人?
  13. 进入windows自启文件夹
  14. 《游戏学习》java实现连珠五子棋完整代码
  15. iOS/MAC 数据压缩与解压缩及常用算法 LZMA、ZLIB
  16. 互金协会:各相关机构即日起就高息现金贷等违规业务开展自查
  17. 【微信video视频播放】video标签
  18. 关于c4d在给模型添加FFD时,遇到拉升FFD里的点,而模型没有任何变化的解决方法
  19. c语言作业存款,2道C语言的题第一:设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计...
  20. 效率工具之SecureCRT

热门文章

  1. 刺激战场电脑版android,逍遥安卓模拟器像端游操控玩《绝地求生刺激战场》电脑版...
  2. 国产蓝牙耳机哪个牌子好?国产蓝牙耳机质量排行榜
  3. SPRINGBOOT车辆违章
  4. ztree设置默认节点选中
  5. NOVA温控器参数笔记(三)
  6. 华为nova8 SE参数配置曝光
  7. 魅族android n彩蛋,魅族Flyme Android 10终于发放:强制开启90Hz彩蛋
  8. 揭秘!为什么在外面修电脑这么坑?
  9. 百度UNIT 关于导航的连续意图识别的解决方案
  10. Ubuntu 交叉编译国产开发板香橙派的环境配置