Android 打开第三方APP

本文详细介绍了Android中启动第三方APP的三种方法:通过包名、指定Activity和URL协议。每种方法都有其优缺点,如包名拉起简单但可能暴露包名,URL拉起可以隐藏图标但需要配置特定的intent-filter。同时,文章提醒在启动前应先检查目标APP是否已安装。
摘要由CSDN通过智能技术生成

Android app 打开第三方APP有以下几种方式

1.包名拉起


           val intent = packageManager.getLaunchIntentForPackage("com.example.testappb")

            startActivity(intent)

优点:方便省事

缺点:暴露包名,如果对方隐藏图标,获取不到intent

2.包名 特定activity拉起

           val intent = Intent(Intent.ACTION_MAIN)
         
            val componentName =
                ComponentName("com.acusee.ar", "com.acusee.ar.MainActivity")
            intent.component = componentName
            startActivity(intent)

优点:隐藏图标,也可以唤起

点:需要知道包名以及activity 的全包名  在activity 的xml中需要配置

android:exported="true"

3.url 拉起

            val url = "sysc://main.app?key=传递的参数"
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
            startActivity(intent)

优点:隐藏图标,也可以唤起,不暴露包名

缺点:需要配置

<intent-filter>
    <data
        android:host="pull.csd.demo"
        android:path="/cyn"
        android:scheme="csd" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

tips:还要注意在唤起三方app 时首先要判断 对方是否已经安装

private boolean checkPackInfo(String packname) {
    PackageInfo packageInfo = null;
    try {
        packageInfo = getPackageManager().getPackageInfo(packname, 0);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return packageInfo != null;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值