如何确定Broadcast Intent的发送者

Gor*_*ran 6 android broadcast broadcastreceiver android-intent

我有一个应用程序,同时是标准动作android.intent.action.SET_WALLPAPER的广播发送者和接收者.我只想在另一个应用程序广播此意图的情况下做一些事情.

有没有办法确定谁在BroadcastReceiver的onReceive方法中发起广播?

Chr*_*Orr 5

不。

如果您只想在另一个应用程序(即不是您的)广播某个操作时做某事,我想应该很容易确定您的应用程序没有发送此广播,因此是其他人..


kar*_*arl 5

如果您关心的是它是否是由您的应用程序发送的,那么您可以做的是每次创建一个额外的Intent.例如:

broadcastIntent.putExtra('com.android.app.EXTRA_APP_CREATED', true)
Run Code Online (Sandbox Code Playgroud)

然后,当您收到广播时,您可以检查

if (intent.getExtra('com.android.app.EXTRA_APP_CREATED', false) { ... }
Run Code Online (Sandbox Code Playgroud)

要查看您是否创建了意图.