基本常识
此方法多用于启动体系中的功能性应用,比如打德律风、发邮件、预览图片、应用默认浏览器打开一个网页等。
1. App 的人口 Activity 与其 icon

一个通俗的应用默认会有一小我口 Activity,它在 AndroidManifest.xml 一一般如许写:
- <application>
- <activity android:name=".MainActivity" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- ...
- </application>
只有设备了一个如许的 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: Attempt to invoke virtual method 'java.lang.String android.content.Intent.toString()' on a null object reference
再看看 getLaunchIntentForPackage() 办法的解释:
- /**
- * Returns a "good" intent to launch a front-door activity in a package.
- * This is used, for example, to implement an "open" button when browsing
- * through packages. The current implementation looks first for a main
- * activity in the category {@link Intent#CATEGORY_INFO},
推荐阅读
现如今,DCIM对象在保障数据中间靠得住和高效地运营中发挥着关键感化,是以买家们应当密切存眷其安排的成长。何谓DCIM?数据中间基本架构治理(DCIM)的定义可能存在多种不合的版本。大年夜更>>>详细阅读
本文标题:Android必知必会-使用Intent打开第三方应用及验证可用性
地址:http://www.17bianji.com/lsqh/37130.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示