首页 > 移动平台 > 详细

Android 启动第三方APP

时间:2015-10-31 17:14:34      阅读:413      评论:0      收藏:0      [点我收藏+]

 

// 通过包名获取要跳转的app,创建intent对象 

Intent intent =getPackageManager().getLaunchIntentForPackage( String packname);
if (intent!=null ){
                startActivity(intent);
}



/**
启动第三方 app

* @param mcontext
@param 
packagename
*/
public static void doStartApplicationWithPackageName (Context mcontext, String packagename) {

     
// 通过包名获取此 APP 详细信息,包括 Activities services versioncode  name等等 
            
PackageInfo packageinfo = null;
     try 

           packageinfo = mcontext.getPackageManager().getPackageInfo(packagename
0 )
     
catch (PackageManager.NameNotFoundException e) {
           e.printStackTrace()
 ;
     

     
if (packageinfo == null) { 
           
return; 
     


     
// 创建一个类别为 CATEGORY_LAUNCHER 的该包名的 Intent
     
Intent resolveIntent = new Intent(Intent. ACTION_MAIN, null) ;
     
resolveIntent.setFlags(Intent. FLAG_ACTIVITY_NEW_TASK ) ;
     
resolveIntent.addCategory(Intent. CATEGORY_LAUNCHER )
     
resolveIntent.setPackage(packageinfo. packageName )

     
// 通过 getPackageManager() queryIntentActivities 方法遍历
            
List<ResolveInfo> resolveinfoList = mcontext.getPackageManager()
                .queryIntentActivities(resolveIntent
 0) ;

     
ResolveInfo resolveinfo = resolveinfoList.iterator().next()
     if 
(resolveinfo != null ) {
           
// packagename = 参数 packname
           
String packageName = resolveinfo.activityInfo . packageName
           
// 这个就是我们要找的该 APP LAUNCHER  Activity[组织形式: packagename.mainActivityname]
           
String className = resolveinfo. activityInfo .name ;
           
// LAUNCHER Intent 
           
Intent intent = new Intent(Intent. ACTION_MAIN) ;
           
intent.setFlags(Intent. FLAG_ACTIVITY_NEW_TASK ) ;
           
intent.addCategory(Intent. CATEGORY_LAUNCHER )

           
// 设置 ComponentName参数 1:packagename 参数2:MainActivity 路径
                        
 ComponentName cn = new ComponentName(packageName className) ;

           
intent.setComponent(cn) ;
           
mcontext.startActivity(intent) ;
     

}


Android 启动第三方APP

原文:http://my.oschina.net/leov1/blog/524345

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!