`

怎样通过一APP打开另一个APP

阅读更多
我们在开发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 一个app启动另一个app

    在Android平台上,应用程序之间的交互是通过Intent机制实现的,这使得一个App能够启动另一个App,或者触发特定的操作。"Android 一个app启动另一个app"这个主题涉及到的核心知识点包括Intent的使用、Intent Filter的...

    ios一个app应用内部调用另一个新的app应用

    在标题和描述中提到的"ios一个app应用内部调用另一个新的app应用",实际上就是指通过URL Scheme实现iOS应用间的跳转。 首先,我们需要理解什么是URL Scheme。URL Scheme是一种类似于http或https的自定义协议,但它...

    IOS应用源码——自定义协议从自己的一个app打开另一个app.zip

    本资源“IOS应用源码——自定义协议从自己的一个app打开另一个app.zip”包含了一个示例项目,展示了如何在iOS应用中实现这一功能。下面将详细介绍这个知识点及其相关原理。 首先,了解自定义协议的概念。自定义协议...

    Android在一个app中实现另一个app的自动安装,安装完成后自动打开(需Root)

    Android在一个app中实现另一个app的自动安装,安装完成后自动打开(需Root),详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/77485561

    ios应用源码之给大家分享代码 如何自定义协议从自己的一个app打开另一个app ip

    这个话题主要涉及了如何从一个iOS应用(App A)通过自定义URL Scheme来启动另一个iOS应用(App B)。以下是对这个主题的详细解释: 一、URL Scheme的概念 URL Scheme是统一资源定位符(Uniform Resource Locator)...

    通过扫描二维码打开app的实现代码

    最近有朋友问小编这样一个问题,先给大家说下项目需求:扫描二维码打开app如果用户没有这个app则提示它跳转。 用网页直接来调用app是不打可能的,必须原生那边先做一些配置。 首先,安卓和苹果的调用方法是不同的。 ...

    App打开小程序App打开小程序

    总结,App打开小程序是移动互联网时代的一种创新交互模式,它结合了原生App的稳定性和小程序的便捷性,为用户提供了更加丰富的服务场景,同时也为开发者提供了新的业务增长点。通过合理的技术实现和优化,可以有效...

    android打开另一App,并监测运行情况

    在Android平台上,开发人员可以实现一个功能,即从自己的应用程序中启动另一个应用,并且能够监控目标应用的运行状态。这通常涉及到Intent的使用,Activity管理,以及系统广播接收器。以下将详细介绍这些知识点: 1...

    通过网页打开APP

    在移动应用开发中,"通过网页打开APP"是一种常见的功能,它允许用户在浏览网页时直接启动手机上的对应应用程序,并能传递特定的数据或参数。这种技术通常涉及到深度链接(Deep Linking)和应用链接(App Links)的...

    JS实现点击网页判断是否安装app并打开否则跳转app store

    但往往我们都是直接给推广图片加了一个下载链接(App Store中的)。所以咱们来模拟一下用户的操作步骤: 1、用户第一次访问宣传页面 a、点击Banner,进入到APP Store中对应的APP下载页 b、APP下载页中提示:安装;...

    .IOS通过手机浏览器打开指定APP

    - iOS APP之间的通讯可以通过URL scheme来实现,即一个APP通过发送特定的URL给另一个APP,后者通过监听这些URL来响应调用。 - 通讯过程涉及到发送方APP在合适的位置触发自定义URL,而接收方APP需要在代码中通过...

    IOS应用源码之如何自定义协议从自己的一个app打开另一个app iPhoneURLScheme_Reference.pdf

    在iOS开发中,自定义协议(Custom URL Scheme)是一种常用的技术,它允许应用程序之间进行通信,使得一个App可以通过特定的URL来启动另一个App。本文将深入探讨如何在iOS应用中实现自定义协议,以实现从一个App跳转...

    如何自定义协议从自己的一个app打开另一个app iPhoneURLScheme_Reference.pdf.rar

    在iOS开发中,自定义协议(Custom URL Scheme)是一种常用的技术,它允许应用程序之间进行通信,使得一个App可以通过特定的URL来启动另一个App。本文将深入探讨如何在iOS中实现自定义协议,以及如何利用...

    通过超链接url打开一些常见app(scheme)

    综上所述,通过超链接URL打开APP主要涉及到Android Intent机制、自定义URL Scheme的配置以及在Activity中处理Intent。这一功能提高了用户体验,同时也为企业和开发者提供了更丰富的营销和推广手段。在实际开发中,...

    uniapp APP打开浏览器界面(browser.js)

    uniapp APP打开浏览器界面

    打开app传参和接收参数apk.zip

    开发者需要创建一个Android Java类,该类负责处理Intent的创建和发送,然后通过Unity的`AndroidJavaObject`和`AndroidJavaClass`接口来调用这些Java方法。 1. **创建Android Intent**: 在Android中,Intent是用于...

    Mac OS 中通过Shell命令执行App应用的快捷方式

    在 Mac OS 中,通过 Shell 命令执行 App 应用的快捷方式可以通过创建一个文件夹,存放打开各个 App 的 sh 命令文件,然后在该文件夹中创建 sh 命令文件,例如 qq.sh,以打开 QQ 应用程序。首先,在控制台中输入 open...

    callapplib是一个H5唤起APP的解决方案能够满足大部分唤端场景

    此外,callapp-lib的另一个关键特性是错误处理和兼容性。由于不同设备、浏览器以及APP的实现可能存在差异,callapp-lib会尽力处理可能出现的异常情况,确保在各种环境下都能尽可能稳定地工作。同时,它也考虑了那些...

    在APP内打开某个网页

    在移动应用开发中,"在APP内打开某个网页"是一个常见的需求,这通常涉及到使用WebView组件。WebView是Android和iOS等操作系统内置的一个控件,它允许开发者在应用程序内部加载和显示网页内容,无需离开应用程序就能...

    详解如何通过H5(浏览器/WebView/其他)唤起本地app

    这是一个很正常的推广和导流量的策略,最近产品经理就提出了这样的一个需求,做一个像今日头条功能一样的带打开app的下载条等等,其他的就不说了! 下面进入我们今天的正题,H5如何打开或者说唤起手机本地

Global site tag (gtag.js) - Google Analytics