2013-11-04 5 views
10

मेरा स्वचालित परीक्षण adb shell am के माध्यम से इरादों को भेजता है, लेकिन मुझे स्ट्रिंग ऐरे एक अतिरिक्त निर्दिष्ट करने में समस्या हो रही है।स्ट्रिंग [] उद्देश्य कमांड लाइन से अतिरिक्त मूल्य कैसे भेजें?

Intent class docs के अनुसार, स्ट्रिंग [] एक इरादे से अतिरिक्त रखना संभव है।

हालांकि 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. 

यह स्ट्रिंग सरणियों भेजने के मात्र उद्देश्य के लिए एक जावा आवेदन लिखने के लिए परिहार्य है: केवल स्ट्रिंग प्रकार मैं डॉक्स में देख सकते हैं सामान्य स्ट्रिंग और शायद अशक्त "स्ट्रिंग" है?

क्या कमांड लाइन से स्ट्रिंग [] अतिरिक्त भेजने का कोई तरीका है?

संपादित करें यदि यह संभव नहीं है, तो ऐसा करने का पसंदीदा तरीका क्या है?

उत्तर

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

और स्ट्रिंग के लिए आपका समाधान [] है? –

+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

शायद हाल ही में यह पेश किया गया था, मुझे लगता है कि पहले ऐसा कोई विकल्प नहीं था, जैसा कि [सीन लोयोला के anser] (http://stackoverflow.com/a/26517290/611007) में देखा गया था। अब यह जानना अच्छा है, धन्यवाद! पहले, मैंने इस तरह की नौकरियों के लिए बनाए गए एक कस्टम प्रोग्राम का उपयोग कर समाप्त कर दिया। – n611x007

+1

हां, यह नया एपीआई है। मुझे यह नहीं मिला जब इसे पेश किया गया था। – auval

+0

बिग इस टिप्पणी के लिए धन्यवाद। इसने एक घंटे का डिबगिंग सत्र हल किया। :) –

1

कार्रवाई और डेटा uri

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

लांच करने के लिए भेजने एसएमएस, माइम प्रकार और एक अतिरिक्त स्ट्रिंग की तरह कार्रवाई

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 डेटा।

आपकी आवश्यकता के अनुसार आप संयोजन में से किसी एक को चुन सकते हैं। अधिक संदर्भ के लिए आप @seal loyola उत्तर

संबंधित मुद्दे