码迷,mamicode.com
首页 > 移动开发 > 详细

Android应用中如何启动另一个应用

时间:2015-01-13 17:20:35      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

Android中 一个应用启动另外一个应用一般有2种情况,

   被启动应用的包名已知 和  未知两种情况:

1  被启动应用的包名已知:

  

   /**启动另外应用的代码,其中被启动的应用的包名为packageName,
        应用的入口为packageName.MainActivity,
      此方法的2个应用的AndroidManifest.xml文件都不需要修改
     **/   
    Intent intent = new Intent();   
    intent.setComponent(new ComponentName("packageName","packageName.MainActivity"));   
    intent.setAction(Intent.ACTION_VIEW);   
    startActivity(intent);   
 

 2  被启动应用的包名未知: 

  这种情况虽然是不知道应用的包名,但是最终启动应用还是通过包名启动。所以要通过一种方法获得手机内应用的包名。 
手机内分系统预装应用和非系统自己安装的应用,可以通过下边的方法判断,返回一个包名的List集合: 

 public List<PackageInfo> getAllApps() {     
        List<PackageInfo> apps = new ArrayList<PackageInfo>();     
        PackageManager packageManager = this.getPackageManager();     
        //获取手机内所有应用     
        List<PackageInfo> paklist = packageManager.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;     
}   

  由于这是个包名的List集合:我们仍不能确定我们要启动的应用是哪个,没关系,我们还可以进一步获取应用名。

 public String[] launchApp() {   
        PackageManager packageManager = this.getPackageManager();   
        List<PackageInfo> packages = getAllApps(); 
        str3=new String[packages.size()];
        PackageInfo pa = null;   
        for(int i=0;i<packages.size();i++){   
            pa = packages.get(i);   
            //获得应用名。这里的str3是我定义的一个数组,承载应用名。
            str3[i] = packageManager.getApplicationLabel(pa.applicationInfo).toString();   
  
        }   
  
		return str3;
    }   

  最后可以根据我们要启动的应用名和String[]组数的每一项做判断。若为true,则启动应用,若为fause,则进行下一项判断。

 

Android应用中如何启动另一个应用

标签:

原文地址:http://www.cnblogs.com/wei1228565493/p/4221735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!