我们在开发android时,有时会遇到在一个APP中打开另一个APP,比如将多个APP整合在一个APP中时,这时就需要这样的功能,先上代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
// ComponentName中第一个参数代表包名,这里的包名指的是AndroidManifest.xml文件 里面的包名,第二个参数是主activity类的包全路径,及为className
ComponentName cn = new ComponentName("com.ybb_new_client", "com.ybb_new_client.ui.SplashActivity");
intent.setComponent(cn);
startActivity(intent);
有时,我们只知道包名,而不知道类时,可以通过下面的方式来打开app
private void doStartApplicationWithPackageName(String packagename) {
// 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等
PackageInfo packageinfo = null;
try {
packageinfo = getPackageManager().getPackageInfo(packagename, 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if (packageinfo == null) {
return;
}
// 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(packageinfo.packageName);
// 通过getPackageManager()的queryIntentActivities方法遍历
List<ResolveInfo> resolveinfoList = getPackageManager()
.queryIntentActivities(resolveIntent, 0);
ResolveInfo resolveinfo = resolveinfoList.iterator().next();
if (resolveinfo != null) {
// packagename = 参数packname
String packageName = resolveinfo.activityInfo.packageName;
// 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname]
String className = resolveinfo.activityInfo.name;
// LAUNCHER Intent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
// 设置ComponentName参数1:packagename参数2:MainActivity路径
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
}
}
分享到:
相关推荐
在Android平台上,应用程序之间的交互是通过Intent机制实现的,这使得一个App能够启动另一个App,或者触发特定的操作。"Android 一个app启动另一个app"这个主题涉及到的核心知识点包括Intent的使用、Intent Filter的...
在标题和描述中提到的"ios一个app应用内部调用另一个新的app应用",实际上就是指通过URL Scheme实现iOS应用间的跳转。 首先,我们需要理解什么是URL Scheme。URL Scheme是一种类似于http或https的自定义协议,但它...
本资源“IOS应用源码——自定义协议从自己的一个app打开另一个app.zip”包含了一个示例项目,展示了如何在iOS应用中实现这一功能。下面将详细介绍这个知识点及其相关原理。 首先,了解自定义协议的概念。自定义协议...
Android在一个app中实现另一个app的自动安装,安装完成后自动打开(需Root),详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/77485561
这个话题主要涉及了如何从一个iOS应用(App A)通过自定义URL Scheme来启动另一个iOS应用(App B)。以下是对这个主题的详细解释: 一、URL Scheme的概念 URL Scheme是统一资源定位符(Uniform Resource Locator)...
最近有朋友问小编这样一个问题,先给大家说下项目需求:扫描二维码打开app如果用户没有这个app则提示它跳转。 用网页直接来调用app是不打可能的,必须原生那边先做一些配置。 首先,安卓和苹果的调用方法是不同的。 ...
总结,App打开小程序是移动互联网时代的一种创新交互模式,它结合了原生App的稳定性和小程序的便捷性,为用户提供了更加丰富的服务场景,同时也为开发者提供了新的业务增长点。通过合理的技术实现和优化,可以有效...
在Android平台上,开发人员可以实现一个功能,即从自己的应用程序中启动另一个应用,并且能够监控目标应用的运行状态。这通常涉及到Intent的使用,Activity管理,以及系统广播接收器。以下将详细介绍这些知识点: 1...
在移动应用开发中,"通过网页打开APP"是一种常见的功能,它允许用户在浏览网页时直接启动手机上的对应应用程序,并能传递特定的数据或参数。这种技术通常涉及到深度链接(Deep Linking)和应用链接(App Links)的...
但往往我们都是直接给推广图片加了一个下载链接(App Store中的)。所以咱们来模拟一下用户的操作步骤: 1、用户第一次访问宣传页面 a、点击Banner,进入到APP Store中对应的APP下载页 b、APP下载页中提示:安装;...
- iOS APP之间的通讯可以通过URL scheme来实现,即一个APP通过发送特定的URL给另一个APP,后者通过监听这些URL来响应调用。 - 通讯过程涉及到发送方APP在合适的位置触发自定义URL,而接收方APP需要在代码中通过...
在iOS开发中,自定义协议(Custom URL Scheme)是一种常用的技术,它允许应用程序之间进行通信,使得一个App可以通过特定的URL来启动另一个App。本文将深入探讨如何在iOS应用中实现自定义协议,以实现从一个App跳转...
在iOS开发中,自定义协议(Custom URL Scheme)是一种常用的技术,它允许应用程序之间进行通信,使得一个App可以通过特定的URL来启动另一个App。本文将深入探讨如何在iOS中实现自定义协议,以及如何利用...
综上所述,通过超链接URL打开APP主要涉及到Android Intent机制、自定义URL Scheme的配置以及在Activity中处理Intent。这一功能提高了用户体验,同时也为企业和开发者提供了更丰富的营销和推广手段。在实际开发中,...
uniapp APP打开浏览器界面
开发者需要创建一个Android Java类,该类负责处理Intent的创建和发送,然后通过Unity的`AndroidJavaObject`和`AndroidJavaClass`接口来调用这些Java方法。 1. **创建Android Intent**: 在Android中,Intent是用于...
在 Mac OS 中,通过 Shell 命令执行 App 应用的快捷方式可以通过创建一个文件夹,存放打开各个 App 的 sh 命令文件,然后在该文件夹中创建 sh 命令文件,例如 qq.sh,以打开 QQ 应用程序。首先,在控制台中输入 open...
此外,callapp-lib的另一个关键特性是错误处理和兼容性。由于不同设备、浏览器以及APP的实现可能存在差异,callapp-lib会尽力处理可能出现的异常情况,确保在各种环境下都能尽可能稳定地工作。同时,它也考虑了那些...
在移动应用开发中,"在APP内打开某个网页"是一个常见的需求,这通常涉及到使用WebView组件。WebView是Android和iOS等操作系统内置的一个控件,它允许开发者在应用程序内部加载和显示网页内容,无需离开应用程序就能...
这是一个很正常的推广和导流量的策略,最近产品经理就提出了这样的一个需求,做一个像今日头条功能一样的带打开app的下载条等等,其他的就不说了! 下面进入我们今天的正题,H5如何打开或者说唤起手机本地