我正在尝试向 Activity 发送 JSON 参数,但似乎无法通过如下命令执行此操作:
adb shell am start -n <activity> -e argument_name '{"blah":"blah"}'
一旦我的应用程序获取 JSON 字符串中的任何双引号,它们就会被删除(“blah”:“blah”变为 blah:blah)。我必须先启动 adb shell,然后运行 am start 这样引号就不会被删除。这发生在 Windows Powershell 上。
我试过 the solution suggested here by Jerry101 (i.e. custom handling of quotes)但这没有帮助。我不想先进入 shell,因为我想从 Powershell 脚本自动启动 android 应用程序。这意味着运行 adb shell 命令,该命令会像上面的示例一样向 shell 发出命令(作为单行程序)。
最佳答案
通过实验,我发现我需要在初始单引号内添加另一个单引号(并且每个单引号都需要使用一对来转义)。双引号需要使用反斜杠字符进行转义。这是一个有效的示例:
adb shell am start -n <activity> -e argument_name '''{\"blah\":\"blah\"}'''
这适用于我的情况。接收方(Unity)看到双引号。
关于android - 保留通过 adb shell 发送的 JSON 引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016553/