我的情况是我用自己的app1去启动我的另一个app2并传递数据,也就说已知另一个app2包名和启动的界面名称,可以这样做:
public static void startAnotherApp(Context context, String servAddr)
{
ComponentName componetName = new ComponentName(
//app2的包名
"com.co.myapp",
//你要启动的界面
"com.co.myapp.MainActivity");
Intent intent= new Intent();
//传递参数
Bundle bundle = new Bundle();
bundle.putString("servAddr", servAddr);
intent.putExtras(bundle);
intent.setComponent(componetName);
context.startActivity(intent);
}
注意点有两个地方:
- 权限问题,被跳转的activity需要在AnroidManifest 文件中给其 activity 节点设置
Android:exported="true"
- 数据传递问题 传递的参数需要使用Bundle
如果想要数据回调可以直接使用startActivityForResult调转,在另一个App的目标界面操作结束时设置setResult就可以了
如App1的Activity跳转