Search code examples
androidjsonbashadb

Sending JSON as extra data in an android broadcast via ADB gets incorrectly formatted


I'm trying to send JSON data as extra on an Android broadcast which I send via ADB to the device. But it looks like the data which gets to the device is not as expected.

What I execute:

adb shell am broadcast -a com.test.android.ACTION_TEST_FEATURE -n com.test.android/.receivers.TestsReceiver -e "notify" '{"debug": false, "title": "Application update!"}'

What I expect as extra data:

{"debug": false, "title": "Application update!"}

What I get as extra data:

"debug": false

If I send {"debug": false "title": "Application update!"} as extra data then i get {"debug": false "title": "Application update!"} as extra data (noting the missing comma). So I assume it has something to do with Brace Expansion of my bash, but turning it off does not solve the problem and escaping the braces or the comma is not working.

What am I doing wrong?


Solution

  • ok, I just found a solution. I first have to enter the devices shell via adb shell and then execute am broadcast -a com.test.android.ACTION_TEST_FEATURE -n com.test.android/.receivers.TestsReceiver --es "notify" '{"debug": false, "title": "Application update!"}'