安卓应用启动其他应用的几种方式

1,知道要启动的包名以及要启动的Activity:

Intent intent = new Intent();

                               /**下面方法的参数分别是指要启动应用的包名及对应的Activity*/
ComponentName cpn= new ComponentName("com.ldm.demo","com.ldm.demo.TextActivity");
intent .setComponent(cpn);
                               startActivity(intent );

2,只知道应用的包名:

                              PackageManager packageManager = getPackageManager();
                              Intent intent=new Intent();
                              intent =packageManager.getLaunchIntentForPackage("packageName");/**packageName指的就要启动应用的包名*/
                              if(intent==null){
                                         System.out.println("APP not found!");
                             }
                                        startActivity(intent);
                                }
                     }

3,知道要启动的包名以及要启动的Activity应用启动并传递数据:

  1.                           ComponentName componentName = new ComponentName(  "com.ldm.demo",    "com.ldm.demo.TestActivity");  
  2.                            Intent intent = new Intent();  
  3.                            Bundle bundle = new Bundle();  
  4.                            bundle.putString("data", data);  
  5.                            intent.putExtras(bundle);  
  6.                            intent.setComponent(componentName);  
  7.                            startActivity(intent);  
  8. 4,未知包名的情况下: 
  9.     /**获得手机内应用的包名,返回一个List集合**/   
           public List<PackageInfo> getAllApps() {     
                List<PackageInfo> apps = new ArrayList<PackageInfo>();     
                PackageManager packageManager = this.getPackageManager();     
                /**获取手机内所有应用 */    
                List<PackageInfo> paklist = pManager.getInstalledPackages(0);     
                for (int i = 0; i < paklist.size(); i++) {     
                    PackageInfo pak = (PackageInfo) paklist.get(i);     
                    /**判断是否为非系统预装的应用  (大于0为系统预装应用,小于等于0为非系统应用) */  
                    if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {     
                        apps.add(pak);     
                    }     
                }     
                return apps;     
        }   
     获得包名后,就可以通过获得要启动的包名启动应用了: 
        public void launchApp() {   
                PackageManager packageManager = this.getPackageManager();   
                List<PackageInfo> packages = getAllApps();   
                PackageInfo pa = null;   
                for(int i=0;i<packages.size();i++){   
                    pa = packages.get(i);   
                    /**获得应用名*/   
                    String appLabel = packageManager.getApplicationLabel(pa.applicationInfo).toString();   
                    /**获得包名  */ 
                    String appPackage = pa.packageName;   
                    Log.d(""+i, appLabel+"  "+appPackage);   
                }   
                Intent intent = packageManager.getLaunchIntentForPackage("jp.co.johospace.jorte");
                startActivity(intent);   
            }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值