【发布时间】:2021-11-02 16:13:22
【问题描述】:
My Sender App 会将其版本号发送到 My Receiver App
我的 Sender App 的 MainActivity(初始 Activity):
package com.sender.app;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent();
intent.putExtra("version", BuildConfig.VERSION_NAME);
intent.setAction("get.sender.app.version");
intent.setPackage("package com.receiver.app;");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);
}
==================================
我的接收器应用程序清单:
<receiver
android:name=".receivers.BroadcastReceiver_GetSenderAppVersion"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="get.sender.app.version" />
</intent-filter>
</receiver>
我的 Receiver 应用的 MainActivity(初始 Activity):
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter intentFilter = new IntentFilter("get.sender.app.version");
registerReceiver(new BroadcastReceiver_GetSenderAppVersion(), intentFilter);
}
我的接收器应用的广播接收器:
package com.receiver.app;
public class BroadcastReceiver_GetSenderAppVersion extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// IT SHOULD COME HERE, ONLY IF IT IS FROM SENDER APP PACKAGE (com.sender.app)
if (intent.hasExtra("version") && intent.getStringExtra("version").length() > 0)
Toast.makeText(context, intent.getStringExtra("version"), Toast.LENGTH_LONG).show();
}
}
只有当版本号来自包 id = com.sender.app 的 Sender App 时,我的 Receiver App 才应在 Toast 中打印版本号
【问题讨论】:
标签: android security package broadcast receiver