android在一个应用程序员启动另一个程序

一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:

  Intent intent = new Intent(Intent.ACTION_MAIN);
  intent.addCategory(Intent.CATEGORY_LAUNCHER);            
  ComponentName cn = new ComponentName(packageName, className);            
  intent.setComponent(cn);
  startActivity(intent);

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

下面是实现代码:
private void openApp(String packageName) {
PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0);

Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);

List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);

ResolveInfo ri = apps.iterator().next();
if (ri != null ) {
String packageName = ri.activityInfo.packageName;
String className = ri.activityInfo.name;

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);
startActivity(intent);
}

时间: 2024-08-04 14:10:56

android在一个应用程序员启动另一个程序的相关文章

[C#]在程序中启动另外一个程序

C#实现在程序中启动另外一个程序 ProcessStartInfo info = new ProcessStartInfo();    info.FileName = "notepad++.exe";//要启动的程序外部名称   info.Arguments = "1009.txt";//设置外部程序的启动参数    info.WorkingDirectory = @"D:\Users\Desktop";    Process pro;//申明一

Android 在一个程序中启动另一个程序

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

八问程序员-----总有一个适合你

先来张美图,缓解一下眼部疲劳,这是今天的天气,北京能有个这么好的天气真是很好啊,珍惜吧 1,为什么程序员中女生那么少? 说个我所经历的真实的案例: 我在一个开发群里回答过一个关于系统开发的问题,回答正确之后很多人说竟然是妹子,好厉害啊! 我默默的无语中........... 如果要是放在以前我上学期间,我一定回一句:女生怎么了?女生就应该比男生笨? 也正是因为你们想着女生肯定做不了程序员,在很大程度上导致了程序媛数量少的问题. 所以,如果想要程序员行业多点儿女生的话首先要摈弃这种毫无事实依据的想

漫谈程序员系列:一个老程序员的2014年终总结

人生天地之间,若白驹过隙,忽然而已.蓦然回首,头上似霜雪,脸上似山川.我的 2014 啊,你就这么毫无眷恋地离我而去了.既然往事已不可追,未来尚未到来,在这年末岁首的间隙,就让我来回忆一下余烟尚存的 2014 吧. 2014 年,对我而言,发生了很多事,不管怎样,我还是一个程序员,这是工作.生活,以及我自己,给我的标签.也许很快这个标签会泛黄.蝶化.零落成泥碾作尘,不过不论怎样,它是我青春的纪念,它仍将伴随着我继续前行. 坚持技术博客写作 看到这里,也许你笑了. 是啊,这一年我不务正业,虽然每周

程序员到底是一个什么职业?

为什么有人在技术造神 大家应该已经感受到,技术圈这两年已经和娱乐圈创业圈差不多的氛围了,这其实是有原因的. 最主要的原因是,创业公司和创业媒体越来越多,他们需要大量的程序员投身到创业这个高风险的行业中,而造神,正是让程序员们自动跳进火坑的绝佳办法.不是说程序员不能创业,我是说,创业媒体们故意模糊了创造和创业的界限,把程序员们的创造冲动偷换概念,鼓吹了太多不适合的人去创业. 另一个原因是,招聘成本高涨,CTO们为了能提升影响力,不得不频频出席各种大会刷脸.文笔好的再做做自媒体和技术社群,既能强化个

大部分程序员心中有一个管理者的梦想,但在技术路线上&quot;半路夭折&quot;

当我们大学的时候还在为如何学好技术发愁的时候,那时的我们在内心深处"埋下了"一个小小的理想,我一定要学好技术,成为一个优秀的程序员.对于在IT行业摸爬滚打6年的我,想起以前的小小理想有些莫名的心酸和感动.看看周围正在前行的朋友和已经倒下的朋友,大家都在艰难的前行,至少大部分人已经脱离最初的想法,最终的想法转向了统一的话题"如何脱离技术,去做管理,因为钱多,发展好".其实这并不是不对,因为大家需要生活,需要养家糊口,这个是没有问题的.但是会带来一个现象就是全行业把做技

每个程序员都有一个孩子

不管你是菜鸟还是大牛,你都是程序员,每个程序员都有一个梦,写出一个完美的程序,让它在千千万万个手机上运行.但是往往事与愿违. 你是程序员,有好多人会问你,你搞程序的初衷是什么,我说是兴趣,他只会呵呵一笑(笑的有点阴森),以后别人再问我同样话,我直接会说,为了钱.他就会说,真庸俗.我也不会辩解什么,人家说的是事实.但是我会很负责任的告诉他,至少我在写程序的时候,就像是在呵护自己的孩子一样,呵护每一行代码.这就够了. ...

浅谈程序员的行业选择---程序人生

引言 本篇博文接着许久之前的一篇博文<浅谈程序猿的职业规划,看你如何决定自己的未来吧.>,继续探讨一下程序员行业相关的内容. 行业的选择不仅对于程序员来说非常重要,对任何一个人来说都是一样的.只不过对于程序员来说,行业更容易被忽略.从程序员每天热议的话题就能看出来,大部分的热议话题都是C#和Java哪个更牛B,或者IOS和Android哪个挣得钱多,很少看到程序员去讨论两个行业谁更有发展前景. 鉴于此,今天我们就来着重讨论一下程序员行业的选择,行业和语言一样,没有谁优谁劣,只是一种选择罢了.

漫谈程序员系列:千奇百怪的程序员

干开发时间长了,遇见好多好玩儿的程序员. 看看你躺枪了没. 博客之星评选,点击投我一票,谢谢.投过了也可以点哦,每天都可以投投一票. 留一手 有个哥们儿,在一合资公司做程序员,能力挺强,写代码很神的. 他的代码我看过,深得 MFC 的精髓:大量的宏,很多函数就两三个宏,一个BEGIN_XXX,一个END_XXX,中间再夹另外一个宏.诺,这就是汉堡包了. 我碰巧看他的代码(题外话,没和他在一个公司一块儿待过),那个头大啊--这玩意儿也能记得住嘛,厉害,真是厉害. 就是这么厉害个人儿,项目组数他牛