android 怎样打开第三方应用,Android必知必会-使用Intent打开第三方应用及验证可用性...

本文主要记录:使用 Intent 打开第三方应用或指定 Activity 的三种方式使用上面三种方式时分别如何判断该 Intent 能否被解析判断该 Intent 能否被解析中可能出现的遗漏基础知识1. App 的入口 Activity 与其 icon一个普通的应用默认会有一个入口 Activity,它在 AndroidManifest.xml 中一般这样写:...只有配置了一个这样的 Activ...
摘要由CSDN通过智能技术生成

本文主要记录:

使用 Intent 打开第三方应用或指定 Activity 的三种方式

使用上面三种方式时分别如何判断该 Intent 能否被解析

判断该 Intent 能否被解析中可能出现的遗漏

基础知识

1. App 的入口 Activity 与其 icon

bffcc246103bf82422f98decdf246222.png

一个普通的应用默认会有一个入口 Activity,它在 AndroidManifest.xml 中一般这样写:

...

只有配置了一个这样的 Activity,这个应用才会点击的时候知道启动哪个 Activity,如果把 category 的值修改为 android.intent.category.DEFAULT 那么,这个应用将在桌面看不到 icon,无法直接打开了。

使用 Intent 打开第三方应用或指定 Activity 的方式

只知道包名 - 需要有默认的入口 Activity

启动指定第三方应用的 Activity - 需要包名和 Activity 名,且该 Activity 的 Export=“true”

隐式启动第三方应用

1. 使用 PackageManager.getLaunchIntentForPackage()

String package_name="xx.xx.xx";

PackageManager packageManager = context.getPackageManager();

Intent it = packageManager.getLaunchIntentForPackage(package_name);

startActivity(it);

该方法针对只知道包名,想要启动该应用时使用,对该应用的***限制是 有默认的入口 Activity 。

当没有默认的入口 Activity 时,会报 NullPointerException 异常:

java.lang.NullPointerException: Attempttoinvoke virtual method'java.lang.String android.content.Intent.toString()'onanullobject reference

再看看 getLaunchIntentForPackage() 方法的说明:

/**

* Returnsa"good"intenttolaunch a front-door activityina package.

* This isused,forexample,toimplement an"open"buttonwhenbrowsing

* thro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值