两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

最近有一个小需求,就是从A应用跳转到同一公司下的B应用,如B未安装,则进行下载安装;

需求简单,再此记录,其中也有常常被大家忽略的小知识;记录一下,方便下次拿来直接用,也供大家互相学习;

实现步骤如下;

1、权限添加、权限的动态申请,及在manifest清单文件中的配置;

2、检测手机内是否安装B应用;

3、如已安装直接跳转;

4、如未安装,则下载安装;

接下来,咱们一步步的看代码实现:

权限添加,及在manifest清单文件中的配置

在A应用中的依赖库:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

权限添加

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

 

权限动态申请,用的RxPermission:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

检测手机内是否有B应用

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

实现从A跳转至B:里面的包名都是B应用的包名,(跳转方式有多中,这里只例举一种)

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

值得注意的是,要想跳转至B,需在B应用的清单文件中进行一点配置,目标Activity下的必备设置,如下:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

至此,简单的从A应用跳转至B应用就实现了;

万一要是手机内没有安装呢?

两种方案:1、在A项目的assets目录下先放一个B.apk,直接从assets目录下进行安装(这个方案最终还是放弃了)。

                 2、直接下载;

 

现在就是简单的下载安装,及在通知栏的进度条展示;

A 应用清单文件中的设置

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

网络下载,我用了一个封装了Okhttp3+retrofit2+rxJava2的一个开源框架,XHTTP2

下载如下,自定义的下载目录:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

 下载的实现:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

 

下载完成后,进行安装:

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

大致实现如下,具体代码我我贴链接,想安来用的直接去下载就好:

顺便,温习一下基础知识:

Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应。

 

两个APP之间的跳转,从A应用跳转至B应用,如B为安装,则进行下载安装

        例如,ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;

floor的英文意义是地板,该方法就表示向下取整,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;

最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。