Android通过Intent 实现 App启动另一个APP

2021-01-08  本文已影响0人  GloryMan

先上效果无图无真相


dongtu.gif

方式1:(此方式最为简单,只需要获取包名就可以)

// 通过包名跳转的app
val intent = packageManager.getLaunchIntentForPackage("com.achievo.vipshop")
// 如果intent为空,就没有安装要跳转的app
     if (intent != null) {
         // 传递参数和Activity和Activity传参数一样
         // intent.putExtra("name", "xxxx")
         // intent.putExtra("age", "19")
         startActivity(intent)
      } else {
         // 没有安装app应用,可以直接跳转到下载页、也可以提醒一下
         Toast.makeText(applicationContext, "赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show()
      }

方式2: (需要获取跳转app首页的activity)

import android.content.ComponentName
import android.content.Intent

val intent = Intent()
//第一种方式
val ComponentN = ComponentName("com.achievo.vipshop", "com.achievo.vipshop.homepage.activity.HomeAdvPopActivity")
try {
    intent.component = ComponentN
    //第二种方式
    intent.setClassName("com.achievo.vipshop", "com.achievo.vipshop.homepage.activity.HomeAdvPopActivity");
    // intent.putExtra("test", "intent1")
    startActivity(intent)
} catch (e: Exception) {
    //TODO  这里提示用户没有安装应用或找不到指定Activity,或者做其他操作
    Toast.makeText(this, "未安装", Toast.LENGTH_SHORT).show()
}

这两种方式的优缺点
第一种:只需要包名就可以打开指定app,相对简单方便获取包名也不是啥难事
第二种:需要在获取包名之后,在获取首页的activity,相对比较麻烦,但是这种方式打开是在当前项目中开辟新线程来加载你所要打开的app,会在打开之后出现两个app,可单独操作,不会同步想要同是在一个app一个账号中操作多个东西可以使用这种方式

最后说下想要获取其他app的首页activity可以自行百度,如找不到也可以联系我QQ:506907778

上一篇 下一篇

猜你喜欢

热点阅读