从一个APK调用另外一个APK中的一个ACTIVITY

原文:http://wenku.baidu.com/view/a555b4d676eeaeaad1f330a8.html
功能:Caller.apk 调用 Callee.apk中的CalleeMainActivity和CalleeLowerActivity。
 
定义:
Caller.apk:去调用的apk,包名:com.caller
Callee.apk£:被调用的apk,包名:com.callee
CalleeMainActivity:manifest.xml中的intent-filter字段带有
<action android:name="android.intent.action.MAIN" /> 的activity

CalleeLowerActivity:manifest.xml中的intent-filter字段不带有
<action android:name="android.intent.action.MAIN" />的activity
 
做法:
1.需要在Caller.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.callee.CalleeMainActivity 或 com.callee.CalleeLowerActivity-->
 
 
2. Caller.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.callee-->
<!-- "需要启动的activity 为 com.callee.CalleeMainActivity 或者 com.callee.CalleeLowerActivity"-->
 
3.对于启动类似 CalleeMainActivity 的 activity,以上步骤就够了。
但是对于类似 CalleeLowerActivity 的 activity 还需要在 Callee.apk 的 manifest.xml中添加一些代码,有几种处理方式:
 
A.最简单,只要在 Callee.apk 的 manifest.xml 中的 CalleeLowerActivity 对应的 activity 字段中添加 android:exported="true" 即可。
B.将A的设置的 exported 设置为 false,然后在几个apk协商一个 ShareUserId 放在各自的 manifest.xml 中,这种做法可以实现只有知道 ShareUserId的apk才能调用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值