13

पर शुरू नहीं हुआ है, तो इस सवाल को स्टैक ओवरफ़्लो में कुछ बार पूछा गया है, लेकिन अभी तक कोई समाधान नहीं है। मेरे पास यूएसबी कनेक्टेड एक्शन प्राप्त करने के लिए एक प्रसारण रिसीवर है। प्रसारण प्राप्तकर्ता जिम्मेदारी है, अगर मुझे अपना आवेदन शुरू करने का इरादा मिलता है। मैनिफेस्ट फ़ाइल में मैंने रिसीवर जोड़ा है। मेरे पास जिंजरब्रेड में एक ही तर्क है, लेकिन मैं आईसीएस काम नहीं कर रहा हूं। की तरह कई सवाल, broadcast-not-invokingब्रॉडकास्ट रिसीवर आईसीएस में काम नहीं कर रहा है यदि ऐप कम से कम

1: Android Boot-Up BroadCast Not invoking और broadcastreciever-not-working

अगर मैं मैन्युअल रूप से एक बार मेरे ऐप शुरू करते हैं, तो अगली बार से ऑन-वार्ड USB कनेक्ट होने पर मेरे अनुप्रयोग स्वचालित रूप से शुरू होता है। एक ही प्रश्न का उत्तर देने का प्रयास करता है लेकिन कोई जवाब नहीं। क्या आईसीएस में इसके लिए कोई समाधान है?

यह मेरा रिसीवर

 <receiver android:name="com.test.MyReceiver"> 
       <intent-filter> 
        <action android:name="android.hardware.usb.action.USB_STATE" /> 
        <action android:name="android.net.wifi.STATE_CHANGE" /> 
      <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> 
      <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
      <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
       </intent-filter> 
      </receiver> 
    and this is my class 
    public class MyReceiver extends BroadcastReceiver { 
    . 
    . 
    . 

    public void onReceive(Context context, Intent intent) { 
. 

मैं गलत कहीं भी हूँ?

अग्रिम धन्यवाद --Kozlov

+0

मेरे पास आपके लिए कोई जवाब नहीं है, हालांकि यह आपकी मदद कर सकता है अगर मैं आपका कोड देख सकता हूं और देख सकता हूं कि कुछ स्पष्ट है या नहीं। हालांकि, मेरे पास एक ऐसा एप्लिकेशन है जो आईसीएस में बूट श्रोता के साथ भी ठीक काम करता है, इसलिए मैं यह सुनिश्चित नहीं कर सकता कि आपकी समस्या क्या हो सकती है। – waxspin

+0

आपकी टिप्पणी के लिए हाय वैक्सस्पिन, थेंक्स। मैनिफेस्ट और रिसीवर के साथ प्रश्न संपादित करें। क्या आप कृपया जांच सकते हैं कि कुछ भी खराब हो रहा है? मेरे पास आवश्यक अनुमति है – Kozlov

+0

मुझे लगता है कि मैंने समस्या को गलत समझा क्योंकि एक ने अभी तक ऐप लॉन्च नहीं किया था। मुझे नीचे ** कॉमन्सवेयर ** को स्थगित करना होगा, जैसा कि ऐसा प्रतीत होता है कि उसने इसका निष्पक्ष परीक्षण किया है। मेरे विशेष मामले में, मेरा ऐप काम करता है क्योंकि इसे अंतिम उपयोगकर्ता के लिए उपयोगी होने के लिए कम से कम एक बार खोला जाना है। मुझे लगता है कि आप केवल एक ही चीज कर सकते हैं जो आप अपने उपयोगकर्ता अनुभव को समायोजित करना चाहते हैं ताकि यह कोई समस्या न हो। मैंने इसे अपने ऐप से नहीं देखा था, क्योंकि बदलाव के बाद मेरे विशेष मामले को समायोजित करने की आवश्यकता नहीं थी। – waxspin

उत्तर

11

वहाँ आईसीएस में इस के लिए किसी भी समाधान है?

यह सही तरीके से काम कर रहा है। एंड्रॉइड 3.1 के रूप में, BroadcastReceiver तब तक काम करेगा जब तक कि उपयोगकर्ता ने मैन्युअल रूप से कोई गतिविधि लॉन्च नहीं की है। I blogged about this eight months ago

+0

सिर्फ उत्सुक, वे ब्रॉडकास्ट रिसीवर के लिए इसे क्यों अक्षम कर देंगे, लेकिन सामग्री प्रदाताओं नहीं? मैंने 2.3 और आईसीएस दोनों के तहत इसी परिदृश्य का परीक्षण किया। ContentProvider का काम करेगा, बीआरएस आईसीएस पर नहीं होंगे, लेकिन दोनों 2.3 साल से कम काम करते हैं। – Ben

+1

@ बेन: क्योंकि सामग्री प्रदाताओं को स्वचालित रूप से उपयोग नहीं किया जाता है। यह मैलवेयर द्वारा ड्राइव को कम करने में मदद करने के लिए जोड़ा गया था, जो सामान स्थापित करता है, सिस्टम प्रसारण का एक गुच्छा लगाता है, और बिना किसी उपयोगकर्ता भागीदारी के सामान करता है। – CommonsWare

+0

हाँ, मुझे लगता है कि मैं उस तर्क को देख सकता हूं, लेकिन फिर भी, ऐसा लगता है कि वे सिस्टम के काम को पूरी तरह से बदलने के बजाय इसे अनुमति दे सकते हैं। ब्रॉडकास्ट रिसीवर के बारे में मुझे पसंद की जाने वाली चीज़ों में से एक यह है कि वे ओएस में सही संदेश के साथ निर्मित एक संदेश बस थे (यदि आप sendOrderedBroadcast का उपयोग करते हैं)। ऐसा लगता है कि अब, गारंटी समाप्त हो गई है, इसलिए मुझे इसके बजाय सीपी का उपयोग करने के लिए मजबूर किया गया है, जो ठीक है, सिवाय इसके कि मैं उस खूबसूरत पब/उप मॉडल डब्ल्यू/मंशा फ़िल्टर को खो देता हूं। – Ben

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