Как отправить значение String [] в командной строке? - программирование

Как отправить значение String [] в командной строке?

Мой автоматизированный тест отправляет intents через adb shell am, но у меня возникли проблемы с указанием дополнительного массива String.

В соответствии с документами класса Intent можно добавить строку [] дополнительно к намерению.

Однако спецификация спецификаций для команды am не отображает тип массива строк. Единственными типами строк, которые я могу видеть в документах, является нормальная строка и, возможно, нулевая "строка":

--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 из командной строки?

изменить, если это невозможно в этом случае, что является предпочтительным способом для этого?

4b9b3361

Ответ 1

Старый вопрос, но без ответа.
adb shell am показывает все параметры, среди которых есть:

[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
    (to embed a comma into a string escape it using "\,")

Ответ 2

Для всех, кто ищет это, флаги командной строки для дополнительных функций перечислены ниже

-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...]

Ответ 3

Действие и данные uri для запуска

adb shell am start -a "android.intent.action.VIEW" -d "http://www.google.com"

Действие, подобное send sms, mime type и дополнительная строка

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 означает только дополнительные данные

Если вы используете --es, то это означает, что он остановит любое существующее действие и правильно начнет работу с дополнительными строковыми данными.

В соответствии с вашими потребностями вы можете выбрать любую комбинацию. Для получения дополнительной информации вы используете @seal loyola answer