android命令发送带有json字符串的广播

android系统下,am broadcast命令可以用来发送广播,但是如果遇到广播内容含有json字符串,经常就会出各种问题。


正确的格式有两种:

(1)通过adb shell执行

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


(2)先执行adb shell后

am broadcast ...--es "key" 'JSON_TEXT'
例如:am broadcast -a com.test.android.ACTION_TEST_FEATURE -n com.test.android/.receivers.TestsReceiver --es "notify" '{"debug": false, "title": "Application update!"}'

注意:

第二种方式与第一种方式的区别,关键在于--es后的key值是否加双引号,以及value值是用哪种引号括起来。如果用错了,广播还是无效。


参考:

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

Android 调试桥

赞 (0) 评论 分享 ()