我的自动化测试通过adb shell am
发送意图,但是我在指定额外的字符串数组时遇到了问题。
根据Intent class docs,可以将 String [] 额外添加到意图中。
但am
命令的Intent specification docs未列出字符串数组类型。我在文档中看到的唯一字符串类型是普通字符串,也许是null“string”:
--esn <EXTRA_KEY>
Add a null extra. This option is not supported for URI intents.
-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>
Add string data as a key-value pair.
为了发送字符串数组而编写java应用程序是否可以避免?
有没有办法从命令行发送 String [] extra?
编辑以防这种方式无法实现,首选方法是什么?
答案 0 :(得分:17)
老问题,但没有答案
adb shell am
显示了所有选项,其中包括:
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(to embed a comma into a string escape it using "\,")
答案 1 :(得分:13)
对于其他寻找此功能的人来说,下面列出了额外的命令行标志
-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>
--esn <EXTRA_KEY>
--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
--ei <EXTRA_KEY> <EXTRA_INT_VALUE>
--el <EXTRA_KEY> <EXTRA_LONG_VALUE>
--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>
--eu <EXTRA_KEY> <EXTRA_URI_VALUE>
--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]
--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]
--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]
答案 2 :(得分:4)
要启动的行动和数据
adb shell am start -a "android.intent.action.VIEW" -d "http://www.google.com"
发送短信,mime类型和额外字符串
等操作adb shell am start -a "android.intent.action.SEND" --es "android.intent.extra.TEXT" "Hello Intent" -t "text/plain"
启动/启动它的显式组件名称
adb shell am start -n "your.package.name/package.nameOf.Activity"
显式组件名称和额外字符串
adb shell am start -n your.AppPckage.name/package.nameOf.Activity --es "key" "value"
有很多--e |您可以在字符串中发送额外的数据 这里
- e表示仅额外数据
如果你使用 - 这意味着它将停止任何现有的活动,并使用额外的字符串数据正确启动活动。
根据您的需要,您可以选择任何一种组合。 有关更多参考,请使用@seal loyola answer