作家
登录

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

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

;   
  • Intent intent = new Intent();   
  • intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//可选   
  • ComponentName comp = new ComponentName(package_name,activity_path); 
  • intent.setComponent(comp);   
  • startActivity(intent);  
  • 此方法可以启动一个应用指定的 Activity,不限于默认人口 Activity。但此方法请求的前提多,如下:

    知道 App 的包名和 Activity 的全路径及其名称

    须要启动的目标 Activity 在 AndroidManifest.xml 中的属性 Export=“true”

    1. String package_name = "xx.xx.xx";   
    2. String activity_path = "xx.xx.xx.ab.xxActivity";   
    3. Intent intent = new Intent();   
    4. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//可选   
    5. ComponentName cn = new ComponentName(package_name,activity_path);   
    6. intent.setComponent(cn);    
    7.  
    8. if (intent.resolveActivity(getPackageManager()) != null) {   
    9.     startActivity(intent);   
    10. else {   
    11.     //找不到指定的 Activity   

    那这种方法下,若何断定目标 Activity 是否存在呢?

    下面是网上传播的异常广泛的用法:

    遗憾的是, Intent.resolveActivity() 办法并不克不及剖断此方法所要启动的 Activity 是否存在,如不雅此 Activity 不存在,会报 java.lang.IllegalArgumentException: Unknown component 异常,并导致法度榜样崩溃。

    下面看下 resolveActivity() 的代码,以及它的 类似办法 resolveActivityInfo() :

    1. public ComponentName resolveActivity(PackageManager pm) {  
    2.     if (mComponent != null) {  
    3.         return mComponent;  
    4.     }  
    5.     ResolveInfo info = pm.resolveActivity(this,  
    6.         PackageManager.MATCH_DEFAULT_ONLY);  
    7.     if (info != null) {  
    8.         return new ComponentName(  
    9.             info.activityInfo.applicationInfo.packageName,  
    10.             info.activityInfo.name);  
    11.     }  
    12.     return null;  
    13. }    
    14.  
    15. public ActivityInfo resolveActivityInfo(PackageManager pm, int flags) {   
    16.     ActivityInfo ai = null;   
    17.     if (mComponent != 

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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