2012-02-11 31 views
26

ठीक है, मैंने बहुत कुछ खोजा है। लोग कहते हैं कि मुझे इसे बंद करने के लिए एमुलेटर की खिड़की को बंद करने की जरूरत है। हालांकि, मुझे द्वारा ACTION_BOOT_COMPLETED को पकड़ने के लिए एमुलेटर को रीबूट करने की आवश्यकता है।ACTION_BOOT_COMPLETED का परीक्षण करने के लिए एमुलेटर को रीबूट कैसे करें?

मैं यह कैसे कर सकता हूं?

उत्तर

31

आप एडीबी से निम्न आदेश का उपयोग कर सकते हैं:

adb shell am activity/service/broadcast -a ACTION -c CATEGORY -n NAME 
उदाहरण के लिए

:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name 

ध्यान दें कि वर्ग के नाम और पैकेज का नाम प्रकट में परिभाषित किया जा करने के लिए के रूप में की जरूरत है।

इस आशय आप चाहते हैं, घटक आप चाहते हैं के लिए एक ही निर्देशित उत्पन्न होगा (अन्यथा आप प्रणाली BOOT_COMPLETED साथ पागल भेजा जाना होगा ...)

+0

धन्यवाद। कोड बहुत अच्छा लग रहा है। वर्तमान में मेरे पास परीक्षण करने का समय नहीं है। लेकिन मुझे पता चला कि स्नैपशॉट का उपयोग किए बिना, एमुलेटर बूटिंग में बहुत तेज है, और बंद :-) मुझे यह पसंद है! –

+0

धन्यवाद, यह काम करता है। –

-2

emulators/बंद बटन है - बस क्लिक करें यह

+2

जब मैं पावर बटन (और 2 या 3 सेकेंड के लिए पकड़ता हूं) पर क्लिक करता हूं, तो यह वास्तविक डिवाइस जैसा कार्य करता है: यह मुझे मौन मोड/हवाई जहाज मोड/पावर ऑफ का मेनू दिखाता है। मैं पावर ऑफ पर क्लिक करता हूं, लेकिन फिर मैं इसे चालू नहीं कर सकता :-(। यह दिखा रहा है कि "बंद हो रहा है ..." –

4

सबसे पहले, यह सुनिश्चित करें कि USB डीबगिंग एमुलेटर के भीतर से सक्षम है:

क्लिक:

  • होम आइकन
  • मेनू आइकन
  • 'सेटिंग्स'
  • 'अनुप्रयोग'
  • 'विकास'
  • सुनिश्चित करें कि अगले 'USB डीबगिंग' बॉक्स एक कमांड लाइन से एक जाँच चिह्न

शामिल हैं:

adb -e reboot 

संपादित करें:

यह निश्चित रूप से काम नहीं करता ... बहुत अजीब है। मैंने इसका परीक्षण किया और एम्यूलेटर रीबूट नहीं कर सका। यह बस लटकता है।

+0

धन्यवाद, मैं कोशिश कर रहा हूं ... –

+0

क्षमा करें, क्या आप मुझे बता सकते हैं कि आप दौड़ते हैं 'एडीबी reboot' सफलतापूर्वक? मैं इसे 45 मिनट के लिए चलाने के लिए, प्रक्रिया' एमुलेटर-arm' CPU की 50% का उपयोग कर रखता है। यह आपकी मदद के लिए –

+0

:-(जवाब नहीं है :-) धन्यवाद कोई बात नहीं। –

26

या किसी अन्य तरीके से (भी कमांड लाइन से):

adb shell stop 
adb shell start 
+0

यह मेरे –

+1

के लिए wrked हाँ, मैं अपने ऑनसाइट को सत्यापित करने में सक्षम था, इसे इस तरह से BOOT_COMPLETED के लिए सुनना कहा जाता था। हालांकि, ब्रेक पॉइंट मैंने नहीं मारा क्योंकि डीबगर अलग हो गया था, लेकिन मैंने डीडीएमएस में अपना लॉग स्टेटमेंट देखा। –

-3

और एक और तरीका:

आप अपने एमुलेटर शुरू करते हैं, और "उपयोगकर्ता डाटा मिटा" चेकबॉक्स चुनें, तो आप भी प्राप्त होगा बूट पूर्ण होने पर अधिसूचना।

+0

लेकिन अगर मैं डेटा मिटा देता हूं, जिस ऐप को मैंने इंस्टॉल किया है उसे मिटा दिया जाएगा :-) –

+0

क्या आपने परीक्षण किया है कि डेटा का उपयोग करने के लिए वास्तव में इंस्टॉल किए गए ऐप्स मिटाएं? मेरा मानना ​​है कि यह डेटा (वरीयताओं, कैश इत्यादि) को मिटा देगा जो ऐप्स द्वारा संग्रहीत किए गए हैं, लेकिन ऐप्स स्वयं नहीं ... – DavidDraughn

+0

@ डेविडड्राउगन, देर से उत्तर के लिए खेद है ... लेकिन यह सब मिटा देता है और मूल लौटाता है। –

8

एक प्रसारण कार्रवाई का अनुकरण करने के लिए, आप एडीबी के माध्यम से कनेक्ट कर सकते हैं एमुलेटर/डिवाइस के लिए और एक खोल खोलने: फिर

adb shell 

, तो आप कार्रवाई प्रसारित कर सकते हैं आप परीक्षण करना चाहते हैं:

am broadcast -a android.intent.action.BOOT_COMPLETED 

कृपया ध्यान दें कि, नवीनतम एंड्रॉइड संस्करणों में, * android.intent.action.BOOT_COMPLETED * प्रसारण का प्रसारण वास्तव में आपके एमुलेटर/डिवाइस को रीबूट करेगा।

0

एंड्रॉयड टैब पर tubemate उपयोग करते समय, मैं आदि error:host interupped साथ वीडियो डाउनलोड करने में सफल नहीं रहा था मैं निम्न कमांड का प्रयोग किया:

adb shell stop 
adb shell start 

और आवेदन वीडियो डाउनलोड करने शुरू कर दिया।

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

  • कोई संबंधित समस्या नहीं^_^