n61*_*007 13 string command-line android adb android-intent
我的自动化测试通过发送意图adb shell am,但是我在指定一个额外的字符串数组时遇到了麻烦.
根据Intent类文档,可以将一个String []额外添加到intent中.
但是,该命令的Intent规范文档am未列出字符串数组类型.我在文档中看到的唯一字符串类型是普通字符串,也许是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.
Run Code Online (Sandbox Code Playgroud)
为了发送字符串数组而编写java应用程序是否可以避免?
有没有办法从命令行发送一个String []额外的?
编辑以防这种情况不可能,这样做的首选方法是什么?
Ami*_*val 17
老问题,但没有答案.
adb shell am显示所有选项,其中包括:
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(to embed a comma into a string escape it using "\,")
Run Code Online (Sandbox Code Playgroud)
sea*_*ola 15
对于其他寻找此功能的人,下面列出了额外功能的命令行标志
-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...]
Run Code Online (Sandbox Code Playgroud)
要启动的操作和数据 uri
adb shell am start -a "android.intent.action.VIEW" -d "http://www.google.com"
Run Code Online (Sandbox Code Playgroud)
发送短信、mime 类型和额外字符串等操作
adb shell am start -a "android.intent.action.SEND" --es "android.intent.extra.TEXT" "Hello Intent" -t "text/plain"
Run Code Online (Sandbox Code Playgroud)
用于启动/启动它的显式组件名称
adb shell am start -n "your.package.name/package.nameOf.Activity"
Run Code Online (Sandbox Code Playgroud)
明确的组件名称和额外的字符串
adb shell am start -n your.AppPckage.name/package.nameOf.Activity --es "key" "value"
Run Code Online (Sandbox Code Playgroud)
很多都带有--e| 您可以在此处发送字符串中的额外数据
--e 表示仅额外数据
如果您使用 --es 这意味着它将停止任何现有的活动并使用额外的字符串数据正确启动活动。
根据您的需要,您可以选择任何一种组合。如需更多参考,请使用@seal loyola答案