在一个自己的应用启动另外的程序。
首先要知道要启动的目的程序的包名,并且要知道要启动的那个应用程序的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;
}
}
}
分享到:
相关推荐
压缩文件中的"实例38_程序启动_启动其它程序"可能包含了具体的代码实现,如C++、Java、Python或其他语言的示例,演示了如何在代码中启动其他程序。通过查看这些示例,你可以学习到如何在实际项目中实现类似的功能,...
在计算机编程领域,程序启动和启动其他程序是两个重要的概念,尤其对于系统级开发者和软件工程师来说,理解这些机制至关重要。下面将详细讲解这两个主题。 首先,程序启动是指执行一个可执行文件,使得该程序开始...
在C++编程中,启动其他程序是常见的任务,这通常涉及到使用操作系统提供的API函数。标题“VC启动其它程序”指的是使用Microsoft Visual C++(VC)作为开发环境,通过编写C++代码来调用系统功能启动外部应用程序。...
标题中的“启动并控制其它Exe程序.zip_EXE程序_启动其他程序”揭示了我们要讨论的核心内容:编写一个程序(通常是主程序)来启动另一个或多个EXE程序,并在一定程度上对它们进行控制。这种控制可以包括但不限于监控...
Linux在你的程序中启动其它程序,并得到返回的文字 Linux在你的程序中调用其它程序,并得到返回的文字信息
通过合理配置`ProcessStartInfo`对象,可以启动其他程序,获取其输出,甚至控制其行为。理解并熟练掌握这一技术对于开发高效且功能丰富的C#应用程序至关重要。在实际开发中,务必考虑到不同程序可能的行为差异,以及...
在.NET框架中,WinForm应用程序可以轻松实现启动其他程序的功能,这主要依赖于`System.Diagnostics`命名空间中的`Process`类。本篇文章将详细介绍如何利用C#编程语言,在WinForm应用中启动外部程序,并探讨相关知识...
在VC++编程中,启动其他程序是常见的操作,这通常涉及到Windows API函数的使用,特别是`CreateProcess`函数。这个过程对于开发具有交互性的应用程序至关重要,因为它允许程序间通信和功能扩展。以下是对"VC++在应用...
7. **异步与同步**:根据需求,启动其他程序可能是同步的(等待新进程执行完成后再继续执行)或异步的(启动后立即返回,让新进程独立运行)。这涉及到线程管理和事件驱动编程。 8. **权限与安全**:在操作其他程序...
在C#编程中,启动另一个程序是常见的任务,这通常涉及到进程管理和操作系统的交互。下面将详细介绍如何在C#中实现这一功能,并提供相关的知识点。 首先,我们需要了解C#中的Process类,它是System.Diagnostics命名...
.d 目录下的脚本文件,使 init 自动启动其他程序。例如,编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入 X-Window。 2. 登录时自动运行程序 用户登录时,bash 会...
3. **程序调用**:为了在指定时间启动其他程序,程序需要调用操作系统提供的API函数,如`执行程序`,来运行外部应用程序。 4. **多线程**:如果定时启动的任务需要在后台运行不影响主程序,那么可能需要用到多线程...
到预定的时间,自动启动相关的外部程序或者网页等!请自行修改按钮和文本框的名称,同时放入时钟控件
外部程序可以是其他应用程序、脚本、或者是任何可执行的文件。为了实现这一功能,C#提供了多种方法来启动外部程序,以下将对每种方法进行详细介绍,并提供相应的代码示例和解释。 首先,最直接的方法是使用Process...
这适用于需要确保外部应用程序完全执行完毕后再继续其他操作的情况。 ```csharp private void button3_Click(object sender, EventArgs e) { try { Process proc = Process.Start(appName); if (proc != null) ...
VB程序实例,可供参考学习使用,希望对你有所帮助
在IT领域,启动其他应用程序是常见的操作,尤其在软件开发中。本文将深入探讨如何使用Visual Studio++(通常简称为VS++)和C++来启动其他应用程序,并通过一个简单的demo来展示具体实现。 首先,我们要了解C++中的...
- 根据实际需求调整其他设置,如是否需要运行时显示程序窗口、运行失败后的处理等。 - 如果设置了特定账户运行此任务,则需要输入该账户的用户名和密码。 5. **保存设置并测试**: - 完成所有设置后,点击“完成...
但是,由于某些情况下通过sc create命令创建服务可能无法成功启动exe程序,我们需要采用其他方法。 第二种配置方式是让exe程序在用户登录时自动启动。这种方式相对简单,不涉及到注册表或者服务,且适用于单个用户...