首页 文章

如何从命令行发送String [] intent额外值?

提问于
浏览
12

我的自动化测试通过 adb shell am 发送意图,但是我在指定一个额外的字符串数组时遇到了麻烦 .

根据Intent class docs,可以将一个String []额外添加到intent中 .

但是 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 []额外的?

edit 如果这种方式不可能,那么首选方法是什么?

3 回答

  • 13

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

    [--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
        (to embed a comma into a string escape it using "\,")
    
  • 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...]
    
  • 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答案

相关问题