一.低版本跳转方式

Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(uri,"application/vnd.android.package-archive");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivityForResult(intent, 666);

uri是apk的uri
记得不要忘了在manifest中加权限,这里就不写出来了。低版本的跳转很简单,但是到了android7.0之后,加了一个机制:
Android N对访问文件权限收回。所以我们要使用FileProvider来单独授权。

二.Android 7.0跳转方式

1.在manifest中添加provider
                    android:name="android.support.v4.content.FileProvider"            android:authorities="独一无二的名字.fileProvider"            android:grantUriPermissions="true"            android:exported="false">                            android:name="android.support.FILE_PROVIDER_PATHS"                android:resource="@xml/file_paths" />        
2.添加xml指定路径

在manifest中有用resource指引到一个xml目录下的file_paths文件

    

这里直接指向根目录,这里顺便贴一下所有路径相关的标签。(1)files-path:
对应物理路径:getFilesDir()
对应具体路径:/data/user/0/包名/files(2)cache-path:
对应物理路径:getCacheDir()
对应具体路径:/data/user/0/包名/cache(3)external-path:
对应物理路径:Environment.getExternalStorageDirectory()
对应具体路径:/storage/emulated/0(4)external-files-path:
对应物理路径:getExternalFilesDir("名字")
对应具体路径:/storage/emulated/0/Android/data/包名/files/名字(5)external-cache-path:
对应物理路径:getExternalCacheDir()
对应具体路径:/storage/emulated/0/Android/data/包名/cache这里还有一个坑:我用的是v4包,在24版本下是没有external-cache-path的,要在v4包的25版本以上才有external-cache-path。所以低于24版本不要使用external-cache-path

3.跳转安装页面
Intent intent = new Intent(Intent.ACTION_VIEW);intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);String authority = "独一无二的名字" + ".fileProvider";Uri fileUri = FileProvider.getUriForFile(this, authority, file);intent.setDataAndType(fileUri, "application/vnd.android.package-archive");startActivityForResult(intent, 666);

三.Android 8.0 跳转方式

Android 8.0强化了权限管理,新增了一个未知来源管理列表页面。简单来说就是说你如果要在这个应用里面去安装另一个应用。要去这个未知来源管理列表页面去设置成允许。如果我们用上面7.0的方式不改代码,直接在8.0上照样跑代码会怎么样?最终会导致用户看不到任何跳转的效果,但是Intent的回调会返回成功的回调。要解决这一问题,有两种方法:(1)跳转到设置-允许安装未知来源-页面去手动设置允许

Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

(2)设置权限

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

设置这个权限就能跳转了,记得因为是超过6.0的系统,所以要动态申请权限。往期精彩回顾:

  • Android实现短信验证码自动填充功能

  • Android仿echo精美弹幕功能

  • Android实现头像重叠排列功能

  • Android仿QQ个性标签功能

  • Android仿QQ侧滑删除的功能

android动态添加的页面怎么加功能_Android跳转应用安装页面相关推荐

  1. Android 动态添加标签及其点击事件

    在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了个例子,运行效果图如下. 标签可以左右滑动进行选择,点击的时候,会弹出toast提示选择或者取消选择了哪个标签.通过动态添 ...

  2. Jquery实现无限级树状结构并动态添加增删改等编辑功能

    点击打开链接 源:http://www.56gee.com/Detail/2012/04/11/8AEB74E423/ <!DOCTYPE html PUBLIC "-//W3C//D ...

  3. Android动态添加Device Admin权限

    /*********************************************************************** Android动态添加Device Admin权限* ...

  4. php拦截登录页面跳转页面,PHP未登录自动跳转到登录页面

    PHP未登录自动跳转到登录页面 下面一段代码给大家分享php未登录自动跳转到登录页面,具体代码如下所示: namespace Home\Controller; use Think\Controller ...

  5. app版本更新 下载apk后没有跳转到安装页面

    app版本更新 下载apk后没有跳转到安装页面 如果遇到这种情况,可以试试下面的两种方法 1.添加请求安装app的权限 <uses-permission android:name="a ...

  6. 版本升级不跳转应用安装页面

    最近开发遇到了个问题,app升级的时候,其他手机都能正常升级,下载完安装包,跳到安装页面进行新版本的安装.但却有用户反映,华为P10和华为Mate 9升级时,怎么也无法跳转到安装页面.起初我以为是华为 ...

  7. android动态居中布局,Android动态添加布局的两种方式

    释放双眼,带上耳机,听听看~! 前言 大多数时候我们布局都是用xml来布局的,但有些时候也是会用到动态布局的,尤其是在一些大项目中,动态布局更是体现的淋漓尽致. 所以今天我们就来学习一些动态加添布局的 ...

  8. android动态改变布局,Android 动态添加布局的两种方式

    前言 大多数时候我们布局都是用xml来布局的,但有些时候也是会用到动态布局的,尤其是在一些大项目中,动态布局更是体现的淋漓尽致. 所以今天我们就来学习一些动态加添布局的两种方式,分别是 动态添加xml ...

  9. vue中使用动态添加路由(router.addRoutes)加载权限侧边栏的两种方式

    工作中我们经常会遇到这种需求,后台定义用户的权限数据,前端进行获取,并渲染在侧边栏导航上,不同权限的用户看到的侧边栏是不同的.即前端渲染的数据是随着后台的改变而改变的,做到真正的前后端分离. 一.拿到 ...

最新文章

  1. Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法【转发】
  2. js判断对象还是数组
  3. mongodb-java-driver基本用法
  4. 对偶上升实例-MATLAB代码
  5. 【感悟】本书书名无法描述本书内容(一)
  6. 问卷调查模块实现的过程中的历程
  7. 大数据技术落地需要注意哪些问题
  8. 国产快速启动软件ALTRun推荐
  9. meshlab简单实践
  10. 电脑能登录微信,但不能上网
  11. 易基因|3文解读:微量样本甲基化测序在肿瘤中的应用
  12. GDOUCTF比赛WEBCRYPTO方向全解!!
  13. java实现仿微信app聊天功能_Android仿微信语音聊天功能
  14. 年度十佳电商网站设计赏析
  15. c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)
  16. 诚诚富众选择投资理财产品
  17. 212实验室日记04
  18. java日期格式化yyyy-mm-dd
  19. 【Java-IO】File、搜索删除剪切、字符集、字符编码、字节流、将内存中的数据写入文件、字符流、缓冲流、Scanner、格式化输出、数据流、对象流、序列化与反序列化、Files工具类
  20. 计算机专业相关的职业技术证书有哪些,你知道吗?

热门文章

  1. 5种改善服务器日志记录的技术
  2. Java八岁生日快乐!
  3. Arrays.sort与Arrays.parallelSort
  4. 通过JAX-WS Provider在Web服务中利用MOXy
  5. 高级ZK:异步UI更新和后台处理–第2部分
  6. Java High CPU故障排除指南–第1部分
  7. 从CLI监视OpenJDK
  8. Linux 系统下命令 unrar 的英文版使用说明
  9. java asin_Java asin()方法
  10. linux android build tools,build.gradle 文件中的 Android SDK Build Tools version