目标: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才能调用。

最新文章

  1. IIS7 应用程序池自动回收关闭的解决方案
  2. 当DevOps撞上物联网
  3. Hibernate 继承映射
  4. 第三章 Git使用入门
  5. Linux学习笔记(12)用户和用户组管理
  6. 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器
  7. 闲聊Redshift与日本CG行业的近况
  8. bzoj3304 [Shoi2005]带限制的最长公共子序列
  9. bzoj 3037 贪心
  10. odbc连接数据库
  11. 深夜,用canvas画一个时钟
  12. Swift 常用字符串操作
  13. 分享一些自己写的前端库,并骗骗 star(库都是在实际项目中大量运用过的)
  14. jqery对于select级联操作
  15. 如何在ADO中使用数据读取器(DataReader)读取数据
  16. java反射取private字段
  17. pycharm设置主题
  18. java 3大特性
  19. 如何在数据表中存取图片 - 回复 &quot;三足乌&quot; 的问题
  20. TreeMap升序|降序排列和按照value进行排序

热门文章

  1. Loadrunner场景设计篇——负载生成器
  2. 链接指示:extern &quot;C&quot;
  3. 【JavaScript】满天星
  4. java 标识符
  5. cookie 与 session 的区别详解
  6. UVA 725 UVA 10976 简单枚举
  7. hdu1596 find the safest road - floyd
  8. tyvj 1067 合唱队形 dp LIS
  9. Socket初步了解
  10. ZZ__知识点