引用:http://blog.sina.com.cn/s/blog_6cea217301012ac3.html

http://www.oschina.net/question/229726_36557#viewSource

Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。 
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:

1 Intent intent = new Intent(Intent.ACTION_MAIN);
2 intent.addCategory(Intent.CATEGORY_LAUNCHER);          
3 ComponentName cn = new ComponentName(packageName, className);          
4 intent.setComponent(cn);
5 startActivity(intent);

但是更多的时候,我们一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名。

下面是实现代码:

view source print?
01 private void openApp(String packageName) {
02 PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0);
03  
04 Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
05 resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
06 resolveIntent.setPackage(pi.packageName);
07  
08 List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
09  
10 ResolveInfo ri = apps.iterator().next();
11 if (ri != null ) {
12 String packageName = ri.activityInfo.packageName;
13 String className = ri.activityInfo.name;
14  
15 Intent intent = new Intent(Intent.ACTION_MAIN);
16 intent.addCategory(Intent.CATEGORY_LAUNCHER);
17  
18 ComponentName cn = new ComponentName(packageName, className);
19  
20 intent.setComponent(cn);
21 startActivity(intent);
22 }
23 }

android 启动其它apk相关推荐

  1. android启动其他apk,Android 启动apk的常用方法

    方法一:最直接的就是知道apk的包名和启动类名, 直接启动 Intent mIntent = new Intent(); ComponentName comp = new ComponentName( ...

  2. 【Android 插件化】VirtualApp 接入 ( 安装 APK 插件应用 | 启动插件 APK 应用 | MainActivity 安装启动插件完整代码 )

    文章目录 一.安装 APK 插件应用 二.启动插件 APK 应用 三.MainActivity 完整代码 四.博客源码 一.安装 APK 插件应用 调用 VirtualCore.get().insta ...

  3. Android开发——Android系统启动以及APK安装、启动过程

    0. 前言   从Android手机打开开关,到我们可以使用其中的app时,这个启动过程到底是怎么样的? 1.  系统上电 当给Android系统上电,在电源接通的瞬间,CPU内的寄存器和各引脚均会被 ...

  4. Android 启动“无启动图标的 apk“

    在 Android 开发以及测试中,经常遇到需要启动一个没有启动图标的apk,这个时候可以使用 pm 以及 am 命令来配合,启动相应apk. 主流程: pm 获取apk包名 pm 获取apk详细配置 ...

  5. android布局优化方案,Android启动优化-布局优化

    Android启动优化-布局优化 安卓应用开发发展到今天,已经成为一个非常成熟的技术方向,从目前的情况看,安卓开发还是一个热火朝天的发展,但高级人才却相对较少,如今移动互联网的开发者也逐渐开始注重插入 ...

  6. Android启动界面优化技巧-Splash Screens的正确方式

    备注:这里是开发跨平台App时,适配Android启动屏幕,主要为了防止白屏.玩Android开源App 往往我们在开发Android的时候会出现白屏等等,主要原因就是启动时需要加载的资源过多,从而影 ...

  7. 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )

    文章目录 前言 一.热启动与冷启动选择 二.AMS 进程中执行的相关操作 三.通过 Binder 机制转到 ActivityThread 中执行的操作 总结 前言 上一篇博客 [Android 启动过 ...

  8. android serialport new 软件退出_基于Android9.0,了解Android启动流程

    先记住四个进程和三种方式. **四个进程** 1.Launcher进程 2.system_server进程 3.App进程 4.Zygote进程 **三种方式** 1.Binder方式 2.Socke ...

  9. Android系统(121)---Android启动页黑屏及最优解决方案

    Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...

最新文章

  1. python中字符串格式化
  2. ios应用内跳转到appstore里评分
  3. 4.1.3 文件目录
  4. python 飞机大战小游戏
  5. LeetCode MySQL 580. 统计各专业学生人数
  6. HttpServletRequest小结
  7. 190717每日一句
  8. 阿里巴巴java规范_《阿里巴巴 Java开发手册》常用规范
  9. mysql中勒索病毒的防护措施_勒索病毒防御措施
  10. 网页显示无法解析服务器DNS地址,打开windows7系统下网页提示无法解析服务器的DNS地址怎么办...
  11. 分布式id黑科技完善
  12. python 设置输入法为英文_python 怎么转化输入法
  13. 小白怎么入门网络安全?
  14. sublimetext的文件编码理解reopen/reload with encoding,set encoding,save with encoding, set file encoding to
  15. Xcode iOS 工程目录结构解析
  16. 虚拟服务器伪静态怎么设置,虚拟主机怎么配置伪静态
  17. Icon图标制作(转化)工具
  18. 考研复试——线性代数
  19. Halo的Sakura主题
  20. VUE 前端中如何进行组件化开发?

热门文章

  1. 第三天:创建型模式--建造者模式
  2. 视觉计算理论简介【转】
  3. linux小白-基础命令-useradd
  4. Android 资源保护问题——探索
  5. php采用fpdf生成中文pdf
  6. 智能摄像头安全风险分析及对策研究
  7. js去空格的三种方法
  8. 【MySQL】数据安全性讨论思维导图
  9. 使用Spring MVC统一异常处理实战
  10. Nodejs+Express学习二(Mongoose基础了解)