原文: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才能调用。
功能: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才能调用。