2013-10-10 16 views
6

मुझे अपने एक एप्लिकेशन से दूसरे एप्लीकेशंस में प्रसारण भेजने की ज़रूरत है .. कोई मदद! अपने आवेदन पैकेज 1) com.demo.database कर रहे हैं और 2) com.demo.listएक एपीके/पैकेज से दूसरे एपीके/पैकेज में प्रसारण भेजें

Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED); 
themesIntent.putExtra("package", packageName); 
ctx.sendBroadcast(themesIntent); 

काम नहीं कर रहा ..

संपादन:

<receiver android:name="com.sample.ThemesUpdatedReceiver"> 
     <intent-filter> 
      <action android:name="com.sample.THEMES_UPDATED"/> 
     </intent-filter> 
    </receiver> 
+0

क्या आपने 'Broad.dco.list' में' BroadmasterReceiver' को 'AndroidManifest.xml' फ़ाइल में या केवल कोड में घोषित किया है? चूंकि ऐप्स के बीच काम करने के लिए यह 'AndroidManifest.xml' में होना चाहिए। – bclymer

+0

हाँ, यह वहाँ लक्ष्य फ़िल्टर के साथ – AJit

+0

एक महत्वपूर्ण बात यह है com.demo.list कोई लांचर गतिविधि है है .. नहीं यकीन है कि कोई फर्क – AJit

उत्तर

2

आप के लिए जा रहे हैं प्रसारण, आमतौर पर आपके पास एक प्रेषक और रिसीवर होता है। आप क्या इस तरह लग रहा है पोस्ट किया है

इस (जहां कभी आप से भेज रहे हैं) ..:,

Intent toret = new Intent(); 
toret.setAction("com.myapp.foo"); 
toret.putExtra("bar", "fizzbuzz"); 
sendBroadcast(toret); 

रिसीवर

IntentFilter intentFilter = new IntentFilter("com.myapp.foo"); 
    BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      // ... do something with the intent 
     } 
    // register the receiver 
    this.registerReceiver(receiver , intentFilter); 

भेजने वाले हमेशा भेजता है (उदाहरण के लिए onResume() में) प्राप्तकर्ता को इरादे सुनने के लिए पंजीकरण करने की आवश्यकता है।

+0

हाँ, AndroidManifest.xml – AJit

+0

ठीक में पंजीकृत कर सकते हैं, तो XML में क्या है? (और THEMES_UPDATED निरंतर मान क्या है?) –

+0

अतिरिक्त संपादन, और हाँ THEMES_UPDATED निरंतर मान – AJit

2

मुझे लगा कि प्रत्येक प्रेषित प्रसारण सभी अनुप्रयोगों द्वारा प्राप्त किया जाता है, सिवाय इसके कि जब आप सेट करते हैं तो विशिष्ट पैकेज प्रसारण के लिए भेजने के इरादे को पैकेज करें।

मुझे प्रसारण प्राप्त नहीं हो रहा है क्योंकि मेरा दूसरा ऐप लॉन्च नहीं हुआ है (जिसमें लॉन्चर गतिविधि नहीं है)।

5

@Ajit: हाय, एंड्रॉइड एपीआई 3.0 [एपीआई स्तर 11] के बाद से, यदि कोई एप्लिकेशन कभी भी शुरू नहीं हुआ है, तो ब्रॉडकास्ट रिसीवर घटनाएं प्राप्त नहीं कर सकता है। जैसे, आपके मामले में, आपके ऐप में कोई लॉन्चर गतिविधि नहीं है , तो यह मामला हो सकता है जो घटना को अस्वीकार कर देता है।

इसके साथ-साथ कृपया नीचे दृष्टिकोण का उपयोग करने का प्रयास करें: आपने इरादा ऑब्जेक्ट बनाते समय निरंतर मूल्य पारित किया है। इसके बजाय इसे विधि intent.setAction() में पास करें;

उम्मीद है कि इससे मदद मिलती है।

+0

उत्तर @anish, सेटिंग और कार्रवाई के लिए धन्यवाद कोई समाधान प्रदान नहीं कर रहा है ... – AJit

+0

बहुत उपयोगी उत्तर –

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