`
蓝月儿
  • 浏览: 48550 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

启动其他的程序

阅读更多
在一个自己的应用启动另外的程序。
首先要知道要启动的目的程序的包名,并且要知道要启动的那个应用程序的main activity ,利用这两个就可以在自己的程序里启动。例如:
 Intent intent=new Intent(); 
          
          intent.setComponent(new ComponentName("com.sdut.edu.activity", 
          "com.sdut.edu.activity.ElectricalMain")); 
          
          intent.setAction(Intent.ACTION_VIEW);
          startActivity(intent);

这里启动的是自己写的应用。
启动系统自带的应用程序感觉与启动这个程序不一样呢?
例如:
  Intent intent=new Intent();
          PackageManager manager=TestLaunch.this.getPackageManager();
//          intent.setComponent(new ComponentName("com.android.calendaroid.app.divxs", "com.android.calendaroid.app.divxs.LaunchActivity"));
//          intent.setAction(Intent.ACTION_VIEW);
          intent =manager.getLaunchIntentForPackage("com.samsung.ebook.reader");
//          intent =manager.getLaunchIntentForPackage("com.android.calendar"); 
          startActivity(intent);


启动了一个系统自带的阅读器程序。
查看系统已经安装的应用程序则是要根据PackageManager获取,指定方法参数。也可以指定多个参数一起决定要获取的已安装的应用程序。
在启动之前判断设备是否已经安装此应用再打开,方法如下:
打开其他的应用
/**
 * 程序的工具类<br>
 * @author zhanglm
 *
 */
public class AppUtils {
 /**
  * 在应用中启动其他应用<br>
  * @param context
  * @param packageName
  * @return
  */
 public static boolean startNewApp(Context context,String packageName){
  PackageInfo pi = null;
  try {
   pi = context.getPackageManager().getPackageInfo(packageName, 0);
   Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
   resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
   resolveIntent.setPackage(pi.packageName);
   List<ResolveInfo> apps = context.getPackageManager().queryIntentActivities(resolveIntent, 0);
   if(apps.size() > 0){
    Iterator<ResolveInfo> iterator = apps.iterator();
    ResolveInfo ri = iterator.next();
    if(ri != null){
     String packageName1 = ri.activityInfo.packageName;
     String className = ri.activityInfo.name;
     Intent intent = new Intent(Intent.ACTION_MAIN);
     intent.addCategory(Intent.CATEGORY_LAUNCHER);
     ComponentName cn = new ComponentName(packageName1, className);
     intent.setComponent(cn);
     context.startActivity(intent);
     Toast.makeText(context, "start successed", Toast.LENGTH_SHORT).show();
     return true;
    }else{
     return false;
    }
   
   }else{
//	 Toast.makeText(context, "start fail", Toast.LENGTH_SHORT).show();
    return false;
   }
  } catch (NameNotFoundException e) {
//	 Toast.makeText(MainActivity.this, "this app does not exit in your device", Toast.LENGTH_SHORT).show();
   return false;
  }
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics