2013-11-04 72 views
10

我的自動測試通過adb shell am發送意圖,但我無法指定一個額外的字符串數組如何從命令行發送String []意圖額外值?

根據Intent class docs,可以將一個String []額外添加到意圖。

然而Intent specification docsam命令沒有列出一個字符串數組類型。唯一的字符串類型,我可以在文檔中看到的是正常的字符串,也許空「字符串」:

--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 []額外的命令行?

編輯如果這種方式無法實現,那麼這樣做的首選方式是什麼?

回答

10

爲別人尋找這對演員的命令行標誌下面列出

-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

而您的String []解決方案是? –

+0

請考慮回答這個問題...... – heyjii

13

老問題,但沒有得到答覆。
adb shell am顯示所有的選項,其中有:

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

可能這是最近推出的,我認爲以前沒有這樣的選擇,如[sean loyola's anser]中所示(http://stackoverflow.com/a/26517290/611007)。很高興知道它現在可用,謝謝!以前,我最終使用了我爲這類工作創建的自定義程序。 – n611x007

+1

是的,它是新的API。我沒有發現它什麼時候推出。 – auval

+0

BIG感謝您的評論。這解決了一個小時的調試會話。 :) –

1

的操作和數據的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回答