从一个应用调用另一个应用的Activity(已知包名)

最近要用到从一个应用调用另一个应用的Activity,我封装了一个方法,直接调用这个方法就可以,前提是要知道要调用应用的包名。

以下是实现方法的代码:

 1
 2     /**
 3      * 根据包名调用app
 4      * @param packageName
 5      */
 6     public void openApp(String packageName) {
 7         PackageInfo pi;
 8         try {
 9                 pi = getPackageManager().getPackageInfo(packageName, 0);
10                 PackageManager pm = this.getPackageManager();
11                 Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
12                 resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
13                 resolveIntent.setPackage(pi.packageName);
14                 List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
15
16                 ResolveInfo ri = apps.iterator().next();
17                 if (ri != null ) {
18                 String packageName2 = ri.activityInfo.packageName;
19                 String className = ri.activityInfo.name;
20
21                 Intent intent = new Intent(Intent.ACTION_MAIN);
22                 intent.addCategory(Intent.CATEGORY_LAUNCHER);
23
24                 ComponentName cn = new ComponentName(packageName2, className);
25
26                  intent.setComponent(cn);
27                 startActivity(intent);
28                 }
29         }catch (NameNotFoundException e) {
30
31                 Toast.makeText(MainActivity.this, "请先下载应用",Toast.LENGTH_LONG).show();
32         }
33     }
34     

直接调用这个方法就可以了:

注意这里的XXXXXX是要调用应用的包名(如:com.xxx.xxx)

openApp("XXXXXX");
时间: 2024-10-10 09:23:07

从一个应用调用另一个应用的Activity(已知包名)的相关文章

在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法

在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的. 比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有.如果调用了有注解的addPerson()方法,会启动一个Transaction:如果调用updatePersonByPhoneNo(),因为它内部调用了有注解的addPerson(),如果你以为系统也会为它启动一个Transaction,那就错了,实际上是没有的. @Service public cla

关于一个解决方案中两个项目,一个项目调用另一个项目的文件

在看一个比较大的项目时, 一个解决方案中有多个项目,比如一个是写好的项目,一个是测试项目,那么怎么从测试项目调用另一个项目的文件呢? 具体解决方案如下: 打开测试项目的属性页:附加包含目录 然后填入你上一个项目源文件所在路径(如果项目须移动时前面加上..\) 接下来就可以调用上一个项目的文件了

09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider

1.  编写ContentPrivider提供者的Android应用 清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.sqlitedemo" android:versionCode=&qu

Qt一个工程调用另一个工程的类成员变量

一句两句话已经不能表达现在的激动情绪了,唯有感叹知识的博大精深,并把感叹转变为文字. 同一个工程调用其他类成员变量非常简单. 如: 定义 Test1.h中申明成员变量 class A { public: double m_fTest; }; Test1.cpp中改变成员变量的值. m_fTest = 265.78; 然后再类B中调用类A的成员变量m_fTest,并需求类A中改变该值时,类B中也要随之改变: 调用方法:包涵类A的头文件 #include "test1.h" 然后在调用处声

Eclipse中一个项目调用另一个项目的资源

如果一个项目A想要引用另一个项目B的资源的话,按照一下步骤进行设置: 右键点击项目A---->>>Build Path--->>>Configure Build Path...--->>>在弹出的对话框中选择Projects选项卡--->>>点击Add--->>>选择项目B进行添加. 备注: 如果项目A关联了项目B,再使用项目B关联项目A,那么项目A和项目B上就会显示红色的感叹号表示警告.

Unity 一个脚本调用另一个脚本的函数

假设两个分别为A和B,分别挂有脚本AScript和BScript,现在想让BScript调用(A的脚本)AScript中的FollowMe()函数. using UnityEngine;using System.Collections; public class BScript : MonoBehaviour{ AScript AComponent; void Function() { AComponent.FollowMe(); } } 注:在编辑器里把A拖到B对象的BScript的AComp

angular 一个界面调用另一个界面的方式1

红色标记的hr都是顶级的module,每个路由节点都会引入hr这个module,所以这些嵌入的界面可以放在hr这个module下 angular.module('hr.templateCache').run(['$templateCache', function ($templateCache) { $templateCache.put('presc-create-modal.html', "<div hr-draggable class=\"create-presc\"

vue中methods一个方法调用另外一个方法

python一个源文件调用另一个源文件的函数

使用软件:pychram 这个是使用了Dight.py的mai()函数,也已经成功运行,但是为什么pychram在下面划红色的波浪线呐. 原文地址:https://www.cnblogs.com/wdgray/p/11963710.html