Android apk互调

时间:2021-10-22 02:45:58

1、启动另外一个应用程序的主Activity.

//这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activity
ComponentName componetName = new ComponentName(
//这个是另外一个应用程序的包名
"com.poynt.weibo",
//这个参数是要启动的Activity
"com.poynt.weibo.ui.IndexActivity");
try {
Intent intent = new Intent();
intent.setComponent(componetName);
startActivity(intent);
} catch (Exception e) {
// Toast.makeText(getApplicationContext(), "可以在这里提示用户没有找到应用程序,或者是做其他的操作!", 0).show(); }

2、启动另外一个程序的Activity之后,并把参数传过去!

在一个Android应用程序A中调用另一个Android程序B,同时传递数据给B  

ComponentName componentName = new ComponentName(
"com.xiaohua.player.activity",
"com.xiaohua.player.activity.PlayerActivity");
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("resUrl", resurl);
bundle.putSerializable("picUrlList", picurllist);
intent.putExtras(bundle);
intent.setComponent(componentName);
startActivity(intent);
注: com.xiaohua.player.activity:包路径
PlayerActivity:Activity类
resUrl :String类型
picUrlList:数组,也可以是对象
应用程序安装后,按以上方式可进行调用. 接受activity:
public void getParameterByIntent() {
Intent mIntent = this.getIntent();
String resUrl = mIntent.getStringExtra("resUrl");
String[] picUrlList = (String[]) mIntent.getSerializableExtra("picUrlList");
if (null != picUrlList) {
int count = picUrlList.length;
for (int i = 0; i < count; i++) {
Log.e("tag", "picUrlList[" + i + "]" + picUrlList);
}
}
} 来自:http://hi.baidu.com/huaxinchang/blog/item/5fa81903474097f409fa9305.html

3、在一个apk中调用另外一个apk中的activity

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);

参考链接:http://www.apkbus.com/android-43480-1-1.html

http://android.toolib.net/reference/android/content/ComponentName.html

代码托管:https://git.oschina.net/klcf0220/shortcut