引用: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);
|
但是更多的时候,我们一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名。
下面是实现代码:
view source print?
01
|
private void openApp(String packageName) {
|
02
|
PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0 );
|
04
|
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null );
|
05
|
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
06
|
resolveIntent.setPackage(pi.packageName);
|
08
|
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0 );
|
10
|
ResolveInfo ri = apps.iterator().next();
|
12
|
String packageName = ri.activityInfo.packageName;
|
13
|
String className = ri.activityInfo.name;
|
15
|
Intent intent = new Intent(Intent.ACTION_MAIN);
|
16
|
intent.addCategory(Intent.CATEGORY_LAUNCHER);
|
18
|
ComponentName cn = new ComponentName(packageName, className);
|
20
|
intent.setComponent(cn);
|
21
|
startActivity(intent);
|
android 启动其它apk相关推荐
- android启动其他apk,Android 启动apk的常用方法
方法一:最直接的就是知道apk的包名和启动类名, 直接启动 Intent mIntent = new Intent(); ComponentName comp = new ComponentName( ...
- 【Android 插件化】VirtualApp 接入 ( 安装 APK 插件应用 | 启动插件 APK 应用 | MainActivity 安装启动插件完整代码 )
文章目录 一.安装 APK 插件应用 二.启动插件 APK 应用 三.MainActivity 完整代码 四.博客源码 一.安装 APK 插件应用 调用 VirtualCore.get().insta ...
- Android开发——Android系统启动以及APK安装、启动过程
0. 前言 从Android手机打开开关,到我们可以使用其中的app时,这个启动过程到底是怎么样的? 1. 系统上电 当给Android系统上电,在电源接通的瞬间,CPU内的寄存器和各引脚均会被 ...
- Android 启动“无启动图标的 apk“
在 Android 开发以及测试中,经常遇到需要启动一个没有启动图标的apk,这个时候可以使用 pm 以及 am 命令来配合,启动相应apk. 主流程: pm 获取apk包名 pm 获取apk详细配置 ...
- android布局优化方案,Android启动优化-布局优化
Android启动优化-布局优化 安卓应用开发发展到今天,已经成为一个非常成熟的技术方向,从目前的情况看,安卓开发还是一个热火朝天的发展,但高级人才却相对较少,如今移动互联网的开发者也逐渐开始注重插入 ...
- Android启动界面优化技巧-Splash Screens的正确方式
备注:这里是开发跨平台App时,适配Android启动屏幕,主要为了防止白屏.玩Android开源App 往往我们在开发Android的时候会出现白屏等等,主要原因就是启动时需要加载的资源过多,从而影 ...
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )
文章目录 前言 一.热启动与冷启动选择 二.AMS 进程中执行的相关操作 三.通过 Binder 机制转到 ActivityThread 中执行的操作 总结 前言 上一篇博客 [Android 启动过 ...
- android serialport new 软件退出_基于Android9.0,了解Android启动流程
先记住四个进程和三种方式. **四个进程** 1.Launcher进程 2.system_server进程 3.App进程 4.Zygote进程 **三种方式** 1.Binder方式 2.Socke ...
- Android系统(121)---Android启动页黑屏及最优解决方案
Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...
最新文章
- python中字符串格式化
- ios应用内跳转到appstore里评分
- 4.1.3 文件目录
- python 飞机大战小游戏
- LeetCode MySQL 580. 统计各专业学生人数
- HttpServletRequest小结
- 190717每日一句
- 阿里巴巴java规范_《阿里巴巴 Java开发手册》常用规范
- mysql中勒索病毒的防护措施_勒索病毒防御措施
- 网页显示无法解析服务器DNS地址,打开windows7系统下网页提示无法解析服务器的DNS地址怎么办...
- 分布式id黑科技完善
- python 设置输入法为英文_python 怎么转化输入法
- 小白怎么入门网络安全?
- sublimetext的文件编码理解reopen/reload with encoding,set encoding,save with encoding, set file encoding to
- Xcode iOS 工程目录结构解析
- 虚拟服务器伪静态怎么设置,虚拟主机怎么配置伪静态
- Icon图标制作(转化)工具
- 考研复试——线性代数
- Halo的Sakura主题
- VUE 前端中如何进行组件化开发?
热门文章
- 第三天:创建型模式--建造者模式
- 视觉计算理论简介【转】
- linux小白-基础命令-useradd
- Android 资源保护问题——探索
- php采用fpdf生成中文pdf
- 智能摄像头安全风险分析及对策研究
- js去空格的三种方法
- 【MySQL】数据安全性讨论思维导图
- 使用Spring MVC统一异常处理实战
- Nodejs+Express学习二(Mongoose基础了解)