Ответ 1
Старый вопрос, но без ответа. adb shell am
показывает все параметры, среди которых есть:
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(to embed a comma into a string escape it using "\,")
Мой автоматизированный тест отправляет 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 из командной строки?
изменить, если это невозможно в этом случае, что является предпочтительным способом для этого?
Старый вопрос, но без ответа. adb shell am
показывает все параметры, среди которых есть:
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(to embed a comma into a string escape it using "\,")
Для всех, кто ищет это, флаги командной строки для дополнительных функций перечислены ниже
-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...]
Действие и данные 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