目标:CHFSAsk.apk调用CHFSAdviser.apk中的AppStart和MainActivity两种activity。

CHFSAsk.apk:去调用的apk, 包名为com.chfs.ask
CHFSAdviser.apk:被调用的apk, 包名为com.chfs.adviser

要调用的activity类型分两种:
A、AppStart   manifest.xml中activity声明中 intent-filter字段带有<action android:name="android.intent.action.MAIN" />的activity

B、MainActivity:其他 activity

A类activity调用方法:

1、需要在调用者自身apk此处即为CHFSAsk.apk的manifest.xml中添加需要调用的activity的声明:

<activity android:name=activity的名称>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity> <!-- "activity的名称"为:"com.chfs.adviser.app.AppStart"或者"com.chfs.adviser.ui.MainActivity"-->

2、CHFSAsk.apk中实现的调用代码:

try{
ComponentName toActivity = new ComponentName(需要启动apk的包名,需要启动的activity); Intent intent = new Intent();
intent.setComponent(toActivity);
intent.setAction("android.intent.action.VIEW"); CurActivity.this.startActivity(intent);
}catch(Exception e){
Log.v("go to apk error","------>"+e.toString());
} <!-- "需要启动apk的包名"为:com.chfs.adviser-->
<!-- "需要启动的activity"为:"com.chfs.adviser.app.AppStart"或者"com.chfs.adviser.ui.MainActivity"-->

对B类activity调用方法:

除了A类两步操作之外,还要进行如下处理
3、还需要在Callee.apk的manifest.xml中添加一些代码,有两种处理方式:
I).最简单,只要在CHFSAdviser.apk的manifest.xml中的MainActivity对应的activity字段中添加android:exported="true"即可。
II).将MainActivity的exported设置为false,然后两个apk协商一个ShareUserId放在各自的manifest.xml中,

CHFSAdviser.apk:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chfs.adviser"
android:versionCode="1"
android:versionName="1.0" android:sharedUserId="com.wyf"
>

CHFSAsk.apk:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chfs.ask"
android:versionCode="1"
android:versionName="1.0" android:sharedUserId="com.wyf"
>

这种做法可以实现只有知道ShareUserId的apk才能调用。

不同apk的activity互相调用的更多相关文章

  1. Android app启动activity并调用onCreate()方法时都默默地干了什么?

    Android app启动activity并调用onCreate() 方法时都默默地干了什么?   在AndroidManifest.xml文件中的<intent-filter>元素中有这 ...

  2. 67、activity中调用fragment内部自定义的方法

    fragment: /** * author: Created by zzl on 15/11/19. */ @SuppressLint("validFragment") publ ...

  3. android调用其他apk的activity

    <img src="https://img-blog.csdn.net/20160322114625025" alt="" />启动另一个apk的工 ...

  4. Unity3D研究院之打开Activity与调用JAVA代码传递参数

    原地址:http://www.xuanyusong.com/archives/667    Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发 ...

  5. 启动其他APK的Activity方法 (转至http://www.cnblogs.com/lijunamneg/archive/2013/02/26/2934060.html)

    有两个app,分别叫做App1和App2.App1包含两个Activity,分别叫做App1_A和App1_B.其中App1_A是入口Activity.也就是App1_A设置intent-filter ...

  6. 多个Activity相互调用和Intent

    MainActivity.java和OtherActivity.java的相互调用 首先MainActivity.java是Android程序自带的,新建一个类OtherActiviy extends ...

  7. 在非activity类调用startActivityForResult

    对于这个问题,今天折腾了一下午,不是说我不懂得怎么调用,而是我用了看似正确的调用方式,而其实这是一个坑. 我用了下面这种方式: ((Activity) mContext).startActivityF ...

  8. apk程序查找方法调用

    有android killer,现在ida对android的支持等一些方便工具,此篇(关于搜索和修改代码)废弃. 没有好的调试工具下 常用插代码(如果怕影响寄存器值,可以将.locals xxx改多几 ...

  9. 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方式

    近期查了非常久这个事情.分享给大家, 原理非常easy,一个Activity在manifet里声明了android:parentActivityName:这时候通过Activity左上角的返回butt ...

随机推荐

  1. linux 安装 maven

    一.下载 1.创建下载软件包目录  mkdir /home/install 2.在/home/install下载maven包,或者将下载好的maven压缩包上传至/home/install wget  ...

  2. Vue-router学习(一)- 路由匹配

    一.Vue-router引入使用 Vue-router就是一个vue路由类,通过new一个Vue路由实例,然后Vue.use()嵌入即可. 一般分为以下步骤: 1.引入 (1).方法一:npm包嵌入, ...

  3. ORM实例介绍

    http://blog.csdn.net/RonoTian/article/details/2900714

  4. 如何选择单片机和Android-LInux-ARM开发板?

    源: 如何选择单片机和Android-LInux-ARM开发板?

  5. Spring 之混合配置

    [JavaConfig 导入另外一个 JavaConfig & JavaConfig 导入 XML] package soundsystem.config; import org.spring ...

  6. SVN使用—常用命令及避免冲突的方法

    一.SVN启动 [root@localhost ~]# mkdir /data/svn [root@localhost ~]# svnadmin create /data/svn/test [root ...

  7. Linux 一键安装最新内核并开启 BBR 脚本

    原文链接   https://teddysun.com/489.html 请到原文链接仔细阅读后操作.建议查看过脚本内容后操作,方便理解运行过程. 使用root用户登录,运行以下命令: wget -- ...

  8. .net 数据脱敏代码实现

    方案一: DTO中处理: private string idNumber; /// <summary> /// 身份证号码 /// </summary> [Column(&qu ...

  9. Android -- 工程架构,电话拨号器, 点击事件的4中写法

    (该系列整理自张泽华android视频教程) 1. android工程 各个文件夹的作用 src/  java原代码存放目录 gen/ 自动生成目录 gen 目录中存放所有由Android开发工具自动 ...

  10. FM算法 的总结

    FM的总结: 1.FM算法与线性回归相比增加了特征的交叉.自动选择了所有特征的两两组合,并且给出了两两组合的权重. 2.上一条所说的,如果给两两特征的组合都给一个权重的话,需要训练的参数太多了.比如我 ...