gpt4 book ai didi

android - 通过 ADB 在 android 广播中将 JSON 作为额外数据发送时格式不正确

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:39 28 4
gpt4 key购买 nike

我正在尝试在通过 ADB 发送到设备的 Android 广播中额外发送 JSON 数据。但看起来到达设备的数据并不符合预期。

我执行的是:

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

我期望的额外数据:

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

我得到的额外数据:

"debug": false

如果我发送 {"debug": false "title": "Application update!"} 作为额外数据然后我得到 {"debug": false "title": "Application update!"} 作为额外数据(注意缺少的逗号)。所以我认为它与我的 bash 的大括号扩展有关,但关闭它并不能解决问题,并且转义大括号或逗号不起作用。

我做错了什么?

最佳答案

您的解决方法帮了大忙!

说明问题出在通过两个shell(主机加安卓)引用。 Shell 引用是一个可怕的 tarpit,但这里还有严重的额外怪异之处。

在尝试“echo”命令后,我发现 adb shell 的参数必须作为本地 shell 的单个参数引用,而 JSON 负载必须作为 Android shell 的单个参数引用。

这是一个通用的解决方案(它不需要散布 \-引用 ", !, {} JSON 文本中的字符):

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

模式:adb shell "am broadcast ... '"'JSON_TEXT'"'"

' 标记的内部对在本地引用 JSON_TEXT,而外部对在远程引用它。外对又被 " 引用。

关于android - 通过 ADB 在 android 广播中将 JSON 作为额外数据发送时格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27940118/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com