在一个自己的应用启动另外的程序。
首先要知道要启动的目的程序的包名,并且要知道要启动的那个应用程序的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;
}
}
}
分享到:
相关推荐
程序启动_启动其它程序。。。。。。。。。。。。。
Linux在你的程序中启动其它程序,并得到返回的文字 Linux在你的程序中调用其它程序,并得到返回的文字信息
c# windows服务 启动外部程序,程序已开启,但看不到界面
实例38_程序启动_启动其它程序
可选择启动其它程序的路径,可启动的参数等。很简单的
在程序中启动其他程序,可以选择要打开的程序,打开程序
C#跨应用程序调用。项目可以启动其他程序获取输出。
.net WinForm 简单实现在程序中启动其他程序
能够通过这个程序启动并控制其他的EXE程序
摘要:VC/C++源码,系统相关,调用外部程序 VC++在应用程序中启动其他程序,从自身窗口中通过点击按钮来调用外部程序,很简单的实例,希望VC++初学者下载后认真学习一下这个VC源代码。
启动APP
在C#中启动另一个程序的实现方法
到预定的时间,自动启动相关的外部程序或者网页等!请自行修改按钮和文本框的名称,同时放入时钟控件
介绍了如何在自己的程序中启动其他EXE程序。
三种方法启动其他应用程序 vs++ c++ 启动应用程序demo.
一个以svchost.exe启动的共享进程服务demo程序。 服务程序以dll发布,提供Installer和unstaller安装导出函数。
本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出。 2. 启动外部程序,等待其退出。 3. 启动外部程序,无限等待其退出。 4. 启动外部程序,通过...
程序启动时自动启动列表中的其他程序,当程序收到关机消息时,自动强制关闭列表中的程序。主要用来应对某些阻碍程序关机的讨厌程序。
本程序包括绑定程序和可自启动的程序。 首先在绑定程序里,把需要绑定的程序加进来。 其中,把自启动程序设置为其中第一个。...其中,第二个程序为启动后显示的程序,其它程序都是在后台悄悄执行。