我有一个问题,涉及使用Mac OS X终端上的Activity Manager发送包含空格字符的字符串额外的意图.
以下命令:
adb shell am start -n com.example.package/.Activity -e 'KEY' 'String with spaces'
Run Code Online (Sandbox Code Playgroud)
...给:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=with cmp=com.example.package/.Activity (has extras) }
Run Code Online (Sandbox Code Playgroud)
...并且只有"String"实际传递给Activity.
我可以通过使用反斜杠转义空格来解决这个问题:
adb shell am start -n com.example.package/.Activity -e 'KEY' 'String\ with\ spaces'
Run Code Online (Sandbox Code Playgroud)
...给:
Starting: Intent { cmp=com.example.package/.Activity (has extras) }
Run Code Online (Sandbox Code Playgroud)
...和"带空格的字符串"传递给Activity,因此它按预期工作.
问题是转义空间会限制我的脚本与Ubuntu终端的兼容性.在Ubuntu的这种情况下,"String\with\spaces"被传递给活动.
有没有办法迫使Mac OS终端解释字符串额外包含空格,如Ubuntu终端吗?