在App中启动另一个App的实现方式
来源:互联网 发布:域名添加解析 编辑:程序博客网 时间:2024/05/16 19:14
1.场景
我们经常会看到在微信里面可以调用QQ客户端,在一个App里面通过点击事件打开手机里面已经安装的某个app,从而满足我们的各种需求
2.分析
一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名,然后通过packageName和className来启动另一个app.
在退出被打开的app后如果想回到之前的app,记得不要finish掉之前的app.
3.代码实现
/** * 打开指定包名的app,这里的包名指的是app的主包名 * * @param packageName 包名 */ private void openApp(String packageName) { PackageInfo pi = null; try { pi = getPackageManager().getPackageInfo(packageName, 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); PackageManager pm = getPackageManager(); List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null) { String getPackageName = ri.activityInfo.packageName; String getClassName = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(getPackageName, getClassName); intent.setComponent(cn); startActivity(intent); } }
4.调用方式
//包名String testPackageName = "com.miui.gallery";openApp(testPackageName);
5.参考文档
http://www.oschina.net/question/229726_36557
阅读全文
1 0
- 在App中启动另一个App的实现方式
- Android 在App中启动另一个App
- Android在一个APP中启动另一个APP
- 安卓在一个APP中打开启动另一个APP
- android 实现一个app启动另一个app的service服务
- android实现app启动另一个app的service
- 在当前app直接启动另一个app
- Android中一个app启动另一个app的指定activity
- Android中一个app启动另一个app的指定activity
- Android中一个app启动另一个app的指定activity
- Android中一个app启动另一个app的指定activity
- 一个app中启动另一个app
- App中如何启动另一个App
- 跨应用启动(在一个APP里启动另一个APP)
- android中实现一个APP启动另一个APP并实现类似微信分享
- 一个app启动另一个app
- 通过APP启动另一个App
- Android在一个APP中通过包名或类名启动另一个APP
- 工作流数据库
- Spring学习遇到的问题
- android Intent概念
- 《这么慢,那么美》------ 听见
- 查询Java中CPU使用率最高的线程
- 在App中启动另一个App的实现方式
- Leetcode496. Next Greater Element I
- VMware12+ubuntu16.04图文记录
- 多表联合查询(join、union等)
- 2266 Card Game (Third Edition)
- D
- javaAPI(4)之DateFormat,Date,Calendar类的使用创建日历
- scala中option、None、some对象
- B