16

我的自动化测试通过 发送意图adb shell am,但我无法指定额外的String Array

根据Intent 类文档,可以将String[] extra 添加到意图中。

但是,该命令的Intent 规范文档am没有列出字符串数组类型。我可以在文档中看到的唯一字符串类型是普通字符串,也可能是 null “字符串”:

--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[] ?

编辑以防这种方式不可能,这样做的首选方法是什么?

4

3 回答 3

26

老问题,但没有答案。
adb shell am显示所有选项,其中有:

[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
    (to embed a comma into a string escape it using "\,")
于 2015-02-20T21:31:59.343 回答
19

对于其他寻找此功能的人,下面列出了附加功能的命令行标志

-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...]
于 2014-10-22T21:17:32.583 回答
4

要启动的操作和数据 uri

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| es 你可以在这里发送字符串中的额外数据

--e 仅表示额外数据

如果您使用 --es 这意味着它将停止任何现有的活动并使用额外的字符串数据正确启动活动。

根据您的需要,您可以选择任何一种组合。如需更多参考,请使用@seal loyola答案

于 2017-11-01T09:04:06.980 回答