当我们需要在一个软件页面里调用另一个软件的某个页面,这时就需要跨软件启动页面,比如我们在自己的页面里调用支付宝或微信的页面。

1.方法1

第一步:在A软件的页面配置文件里添加android:exported=”true”

第二步:在A软件的页面配置文件里添加intent-filter标签,格式为:

<intent-filter >
<action android:name="命名"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

例:

第三步:在B软件里启动A软件里的页面,如

Intent i=new Intent("zhao.sizhe.a");
startActivity(i);

常用包名
// 微信 包名 com.tencent.mm //启动类名:com.tencent.mm.ui.LauncherUI

//QQ 包名 com.tencent.mobileqq  //启动类名:com.tencent.mobileqq.activity.HomeActivity

//支付宝 包名:com.eg.android.AlipayGphone    //启动类名com.eg.android.AlipayGphone.FastStartActivity

//钉钉 包名:com.alibaba.android.rimet    //启动类名:com.alibaba.android.rimet.biz.home.activity.HomeActivity

//QQ空间 包名:com.qzone

//QQ手机管家 包名:com.tencent.qqpimsecure

//微博 包名:com.sina.weibo   //启动类名:com.sina.weibo.EditActivity

2.方法2

通过app的包名和类名

 Intent intent = new Intent();              ComponentName comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.SplashActivity");//QQ的包名和类名// ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI");//微信的包名和类名
// ComponentName comp = new ComponentName("com.eg.android.AlipayGphone", "com.eg.android.AlipayGphone.FastStartActivity");//支付宝intent.setComponent(comp);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//finish();

3.方法3

通过包名

private void doStartApplicationWithPackageName(String packagename) {// 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等PackageInfo packageinfo = null;try {packageinfo = getPackageManager().getPackageInfo(packagename, 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}if (packageinfo == null) {return;}// 创建一个类别为CATEGORY_LAUNCHER的该包名的IntentIntent 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 = 参数packnameString packageName = resolveinfo.activityInfo.packageName;// 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname]String className = resolveinfo.activityInfo.name;// LAUNCHER IntentIntent 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);}}

方法3.案例:

在Java文件添加以下代码:

package com.example.tiaozhuangapp;import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity {public  Intent intent;public   ComponentName comp,comp1,comp2,comp3,comp4,comp5,comp6,comp7;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);supportRequestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);Button bt = findViewById(R.id.button);Button bt2 = findViewById(R.id.button2);Button bt3 = findViewById(R.id.button3);Button bt4 = findViewById(R.id.button4);Button bt5 = findViewById(R.id.button5);Button bt6 = findViewById(R.id.button6);Button bt7 = findViewById(R.id.button7);Button  bt8=findViewById(R.id.button8);Button bt13 = findViewById(R.id.button13);Button bt14 = findViewById(R.id.button14);Button bt15 = findViewById(R.id.button15);Button bt16 = findViewById(R.id.button16);Button bt17 = findViewById(R.id.button17);Button bt18 = findViewById(R.id.button18);Button bt19 = findViewById(R.id.button19);intent = new Intent();comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.SplashActivity");comp1 = new ComponentName("com.tencent.qqmusic", "com.tencent.qqmusic.activity.SplashActivity");comp2 = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI");comp3 = new ComponentName("com.eg.android.AlipayGphone", "com.eg.android.AlipayGphone.FastStartActivity");bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//                Intent i=new Intent(MainActivity.this,MainActivity2.class);
//                startActivity(i);
//                Intent i=new Intent("a.b.c");//               startActivity(i);//                Intent intent = new Intent();
//                ComponentName comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.SplashActivity");//     ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI");
//              ComponentName comp = new ComponentName("com.eg.android.AlipayGphone", "com.eg.android.AlipayGphone.FastStartActivity");
//                intent.setComponent(comp);
//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//                startActivity(intent);
//                finish();doStartApplicationWithPackageName("com.tencent.mobileqq");}});bt2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.tencent.mm");}});bt3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.eg.android.AlipayGphone");}});bt4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.taobao.taobao");}});bt5.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.tencent.qqmusic");}});bt6.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.tencent.mtt");}});bt7.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.ss.android.ugc.aweme");}});bt8.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//   Intent i=new Intent(MainActivity.this,MainActivity2.class);//  startActivity(i);//  finish();}});bt13.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.tencent.qqlive");}});bt14.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.baidu.tieba");}});bt15.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.chaoxing.mobile");}});bt16.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("net.csdn.csdnplus");}});bt17.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.tencent.wework");}});bt18.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.kingsoft");}});bt19.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {doStartApplicationWithPackageName("com.kingsoft");}});}private void doStartApplicationWithPackageName(String packagename) {// 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等PackageInfo packageinfo = null;try {packageinfo = getPackageManager().getPackageInfo(packagename, 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}if (packageinfo == null) {return;}// 创建一个类别为CATEGORY_LAUNCHER的该包名的IntentIntent 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 = 参数packnameString packageName = resolveinfo.activityInfo.packageName;// 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname]String className = resolveinfo.activityInfo.name;// LAUNCHER IntentIntent 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);}}}

界面布局代码(xml):

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:background="#121113"><Buttonandroid:id="@+id/button"android:layout_width="108dp"android:layout_height="53dp"android:text="打开QQ"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.061" /><Buttonandroid:id="@+id/button2"android:layout_width="108dp"android:layout_height="53dp"android:text="打开微信"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.184" /><Buttonandroid:id="@+id/button3"android:layout_width="108dp"android:layout_height="53dp"android:text="打开支付宝"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.317" /><Buttonandroid:id="@+id/button4"android:layout_width="108dp"android:layout_height="53dp"android:text="打开淘宝"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.461" /><Buttonandroid:id="@+id/button5"android:layout_width="108dp"android:layout_height="53dp"android:text="打开QQ音乐"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.595" /><Buttonandroid:id="@+id/button6"android:layout_width="108dp"android:layout_height="53dp"android:text="打开QQ浏览器"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.731" /><Buttonandroid:id="@+id/button7"android:layout_width="108dp"android:layout_height="53dp"android:text="打开抖音"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.108"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.884" /><Buttonandroid:id="@+id/button8"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#02FFFFFF"android:text=">"android:textColor="#ffffff"android:textSize="30dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.95"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.976" /><Buttonandroid:id="@+id/button13"android:layout_width="108dp"android:layout_height="53dp"android:text="打开腾讯视频"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.061" /><Buttonandroid:id="@+id/button14"android:layout_width="108dp"android:layout_height="53dp"android:text="打开百度贴吧"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.184" /><Buttonandroid:id="@+id/button15"android:layout_width="108dp"android:layout_height="53dp"android:text="打开学习通"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.317" /><Buttonandroid:id="@+id/button16"android:layout_width="108dp"android:layout_height="53dp"android:text="打开csdn"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.461" /><Buttonandroid:id="@+id/button17"android:layout_width="108dp"android:layout_height="53dp"android:text="打开企业微信"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.595" /><Buttonandroid:id="@+id/button18"android:layout_width="108dp"android:layout_height="53dp"android:text="打开金山词霸"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.731" /><Buttonandroid:id="@+id/button19"android:layout_width="108dp"android:layout_height="53dp"android:text="打开流利说英语"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.613"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.884" /></androidx.constraintlayout.widget.ConstraintLayout>

Android的当前应用启动第三方应用(跨软件启动页面)相关推荐

  1. Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析...

    前言 前些天,测试MM发现了一个比较奇怪的bug. 具体表现是: 1.将app包通过电脑QQ传送到手机QQ上面,点击安装,安装后选择打开app (此间的应用逻辑应该是要触发 [闪屏页Activity] ...

  2. Android 应用内启动第三方应用

    在工作中有一个需要启动第三方应用的功能,需求是:判断是否安装该应用,如果安装就启动,没有的安装,则启动默认浏览器,访问一个地址来下载. 1.判断是否已安装了该应用 private boolean is ...

  3. android 启动第三方程序的代码(利用ComponentName)

    转自:http://blog.csdn.net/vrix/article/details/6851557  在Intent中可以直接使用Intent.setClass() 也可以使用组件Compone ...

  4. 获取android已安装的应用PackageInfo启动第三方APP应用

    获取android已安装的应用PackageInfo 获取已安装的应用 public static ArrayList<AppInfo> getInstalledApps(Context ...

  5. android 关联启动第三方应用

    若是同一家公司应用,比如淘宝,支付宝,为了保持彼此存活率,通常会设置关联启动,那么该如何做呢?我们首先做个开机自启的Service: package com.example.myapplication ...

  6. android listview 滑动黑屏,Android 跨进程启动Activity黑屏(白屏)的三种解决方案

    当Android跨进程启动Activity时,过程界面很黑屏(白屏)短暂时间(几百毫秒?).当然从桌面Lunacher启动一个App时也会出现相同情况,那是因为App冷启动也属于跨进程启动Activi ...

  7. Android 系统 (39)---OTA后启动第三方APP出现APP Crash

    FOTA/OTA之後启动第三方APP出現APP Crash 1.问题   用FOTA下载OTA包,下载完毕更新:   更新完毕后点击多个三方APP无法进入,提示报错(这些APK都是正常安装,非预置). ...

  8. 【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )

    文章目录 I . 默认启动模式 ( standard ) II . 栈顶复用启动模式 ( singleTop ) III . 栈内复用启动模式 ( singleTask ) IV . 单实例启动模式 ...

  9. android 全局hook_【Hook】实现无清单启动Activity

    引子 Hook技术在android开发领域算是一项黑科技,那么一个新的概念进入视线,我们最关心的3个问题就是,它是什么,有什么用,怎么用 本系列将由浅入深 手把手讲解这三大问题. 本文是第三篇, 高级 ...

  10. 二手平台android界面,Android二手书交易app设计(2)启动图Activity

    在app打开的时候,会先进入到启动图界面.在启动图界面中停留3s(或者直接跳过),而后判断是否已经登陆.进入到登陆页面或者是进入到主页面.html 一 启动图界面 采用帧布局(framelayout) ...

最新文章

  1. POJ - 1284 Primitive Roots(原根+欧拉函数)
  2. 对象作为函数参数可能会导致的问题
  3. SAP UI5是如何从浏览器读取语言设置并按照优先级排序的
  4. OO_2019_第一单元总结——表达式求导
  5. php 变量存活期,php 变量生命周期:PHP源码分析-PHP的生_php
  6. 拓端tecdat|R语言蒙特卡洛计算和快速傅立叶变换计算矩生成函数
  7. servlet详细理解
  8. 手把手带你学微信小程序 —— 如何开发属于自己的第三方微信小程序组件库
  9. 2022高教社杯数学建模思路 - 案例:核方法(机器学习)
  10. uniapp项目 App端实现微信登录、QQ登录
  11. 计算机导师问读研计划和后续计划,考研面试,问“研究生时期的规划”怎么回答急...
  12. 缅怀清明-记爷爷这一生
  13. 情侣婚前同居,男人吃亏还是女人吃亏?
  14. 牡丹的冬季修剪及管理方法
  15. 基础30讲 第11讲 多元函数微分学
  16. 用C语言程序实现两个字符串的连接
  17. 非银金融行业:平安好医生,互联网医疗先行者,打造医疗生态圈闭环-20210106.PDF
  18. unity 标准资源包中的围绕旋转摄像机
  19. (转)核心银行系统 之三 核心系统的国内外厂商介绍
  20. 重置计算机网络设置路由器,路由器怎么重置 2种路由器重置方法

热门文章

  1. linux 汉字乱码 window中正常显示
  2. 微擎-人人商城接入Facebook授权登录
  3. 计算机青蓝云题库,计算机三级上机题库 计算机三级网络技术上机题库《南开100题》.doc...
  4. 用SmartUpload实现文件上传,下载,删除
  5. 磁共振成像原理-物理基础(质子在外部磁场的情况)
  6. MYSQL查看操作日志
  7. 基于单片机的语音小车设计
  8. 数字孪生:第三人称鼠标操作
  9. NLP自然语言处理 之 jieba中文处理
  10. Activate Scrolling with Middle Trackpad Button