作家
登录

使用Intent打开第三方应用及验证可用性

作者: 来源: 2017-09-07 15:38:17 阅读 我要评论

本文重要记录:

  • 应用 Intent 打开第三方应用或指定 Activity 的三种方法
  • 应用膳绫擎庞种方法时分别若何断定该 Intent 可否被解析
  • 断定该 Intent 可否被解析中可能出现的漏掉

1. App 的人口 Activity 与其 icon

基本常识

  1. <application>   
  2.     <activity android:name=".MainActivity" >   
  3.         <intent-filter>   
  4.             <action android:name="android.intent.action.MAIN" />   
  5.             <category android:name="android.intent.category.LAUNCHER" />   
  6.         </intent-filter>   
  7.     </activity>   
  8.     ...   
  9. </application>  

该办法针对肮脏道包名,想要启动该应用时应用,对该应用的独一限制是 有默认的人口 Activity 。

  1. String package_name="xx.xx.xx";   
  2. PackageManager packageManager = context.getPackageManager();   
  3. Intent it = packageManager.getLaunchIntentForPackage(package_name);   
  4. startActivity(it);  

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

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

一个通俗的应用默认会有一小我口 Activity,它在 AndroidManifest.xml 一一般如许写:

  1. Uri uri = Uri.parse("http://www.abc.xyz");  
  2.  
  3. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  4.  
  5. startActivity(intent);  

肮脏道包名 - 须要有默认的人口 Activity

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

隐式启动第三方应用

1. 应用 PackageManager.getLaunchIntentForPackage()

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

  1. java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.toString()' on a null object reference  

再看看 getLaunchIntentForPackage() 办法的解释:

  1. /**   
  2.      * Returns a "good" intent to launch a front-door activity in a package.   
  3.      * This is
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

      程序员经常说的「设计模式」到底是什么?

    【编辑推荐】 大年夜法度榜样员到CTO,可能就差这一次改变 知加一周精选:法度榜样员上周薪资播报出炉,快来看看你的热度 终于找到法度榜样员无休止加班的原因了! 揭秘项目经>>>详细阅读


    本文标题:使用Intent打开第三方应用及验证可用性

    地址:http://www.17bianji.com/lsqh/37221.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)