有时需要做一个app,用来启动其他app,其他app不显示启动的图标的,并传替数据这样的业务,比如要从Aapp启动Bapp,Bapp在手机桌面上不显示自己的应用图标的,并传替数据。
核心代码:
在Aapp中点击按钮,启动Bapp,核心代码:
private void toPadFeedbackAPP() {
try {
Intent intent = new Intent("com.value.padfeedback", Uri.parse("data://"+assembleLoginData()));
this.startActivity(intent);
} catch (Exception e) {
Toast.makeText(this, "启动平板反馈App异常", Toast.LENGTH_SHORT).show();
}
}
方法
assembleLoginData()可以设置需要传替的数据。
private String assembleLoginData(){
String json = "今天天气不错";
return json;
}
在Bapp中需要在清单文件中修改启动模式,打开AndroidManifest.xml,找到自己的启动activity,如下修改
<activity
android:name=".SplashActivity"
android:configChanges="keyboardHidden|orientation|screenSize|navigation"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="com.value.padfeedback" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="data" />
</intent-filter>
</activity>
注意:
android:name="com.value.padfeedback"需要和Aapp中的
new Intent("com.value.padfeedback", Uri.parse("data://"+assembleLoginData()))里面一致。
这样就可以启动SplashActivity了,然后就是接收数据,写在SplashActivity中的onCreat()方法中即可。
Intent intent = getIntent();
Uri uri = intent.getData();
String uriStr = uri.getAuthority();
uriStr就是接收到的数据。