2013-11-04 9 views
10

Otomatik testim adb shell am aracılığıyla intents gönderir, ancak bir String Array olduğunu belirtmekle ilgili bir sorun yaşıyorum.Dize [] intent ekstra değeri komut satırından nasıl gönderilir?

Intent class docs'a göre, bir amaç için Dizgisi [] eklemek mümkündür.

Ancak am komutu için bir dizi dizisi türü listelenmiyor.

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

o dize diziler gönderme sırf amaç için bir java uygulama yazmak önlenebilir mi: Ben docs görebileceğiniz tek dize türleri, normal dize ve belki boş "dizesi" nedir?

String [] komut satırından ek bir yol göndermek için bir yolu var mı?

düzenleme Bu mümkün değilse, bunun için tercih edilen yol nedir? Bunun için ekstralar için komut satırı bayrakları seyir herkesten için

cevap

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

Ve bir String [] için çözümünüz nedir? –

+0

Lütfen bu sorunun cevabını düşünün ... – heyjii

13

Eski soruya ancak cevapsız aşağıda listelenmiştir.
adb shell am bütün seçenekleri gösterir, aralarında var:

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

muhtemelen bu yakın zamanda tanıtıldı, [sean loyola'nın anser] (http://stackoverflow.com/a/26517290/611007) 'de görüldüğü gibi, daha önce böyle bir seçenek yoktu düşünüyorum. şimdi mevcut olduğunu bilmek güzel, teşekkürler! Önceden, böyle işler için yarattığım özel bir program kullanarak sona erdi. – n611x007

+1

Evet, yeni API. Ne zaman tanıtıldığını bulamadım. – auval

+0

BIG Bu yorum için teşekkür ederiz. Bu bir saatlik hata ayıklama oturumu çözüldü. :) –

1

eylem ve veri uri

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

sms göndermek, mim türü ve ekstra dize gibi eylem başlatmak için

adb shell am start -a "android.intent.action.SEND" --es "android.intent.extra.TEXT" "Hello Intent" -t "text/plain" 

Başlamak/başlatmak için açıkça bir bileşen adı

adb shell am start -n "your.package.name/package.nameOf.Activity" 

veren açık bileşen adı ve --E ile

adb shell am start -n your.AppPckage.name/package.nameOf.Activity --es "key" "value" 

O kadar çok ekstra bir dize | es Eğer

sadece ek verileri

bunu varolan herhangi bir faaliyeti durdurmak ve düzgün ekstra dizesiyle aktiviteyi başlayacak demek --es kullanırsanız

anlamına --E dize burada ekstra veri gönderebilir veri.

İhtiyacınıza göre kombinasyonlardan birini seçebilirsiniz. Daha fazla referans için, @seal loyola numaralı yanıtı kullanın.