BroadcastReceiver 通过 ADB 接收额外信息——无法正常工作

BroadcastReceiver receive extra with ADB --es not working

我在 MainActivity.onCreate 方法中使用以下语句注册了一个广播接收器:

...
// in onCreate()
val filter = IntentFilter("com.example.my_receiver.TEST_FILTER")
registerReceiver(myReceiver, filter)
...

与以下接收器

private val myReceiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        // do something
    }
}

当我执行添加命令时

adb shell am broadcast -a com.example.my_receiver.TEST_FILTER

将执行onReceive方法。但是当我尝试添加一些额外的数据时

adb shell am broadcast -a com.example.my_receiver.TEST_FILTER --es test_data "My testdata"

什么都不会执行。如何使用 adb 发送额外数据并在 BroadcastReceiver 实现中接收它? compileSdktargetSdk 是 31.

我建议您首先尝试不使用空格,或者直接转义空格,参见此处:

adb command fail to execute if path contain spaces