2011-08-22 20 views
10

मैं परेशान हूं। मैं एसडी कार्ड उपलब्ध/ऑफलाइन होने के जवाब देने के लिए अपने ऐप को कॉन्फ़िगर करने की कोशिश कर रहा हूं, लेकिन मेरा प्रसारण रिसीवर कभी नहीं बुलाया जाता है!MEDIA_MOUNTED प्रसारण प्राप्त नहीं किया जा रहा

मैं घटना देख सकते हैं प्रसारित किया जा रहा है, और अन्य एप्लिकेशन जवाब:

08-21 23:43:04.405: DEBUG/Ringer(275): -- intent.getAction() =android.intent.action.MEDIA_MOUNTED 

और मेरे प्रकट रिसीवर की घोषणा की है:

<receiver android:name=".Test" android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     </intent-filter> 
    </receiver> 

और मेरे रिसीवर एक onReceive विधि है:

public class Test extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.d("#########", "##############################################################"); 
     Log.d("#########", "Obligitory snarky and/or funny logging comment..."); 
     Log.d("#########", "##############################################################"); 
    } 
} 

फिर भी & ^% $ 'आईएनजी चीज टेस्ट.ऑनसेसेव का कारण नहीं बनेंगे ई() आग के लिए। कोई विचार?

उत्तर

39

आप गंभीर नहीं हो सकते हैं। स्पष्ट रूप से मुझे डेटा प्रकार के लिए एक अतिरिक्त फ़िल्टर जोड़ने की आवश्यकता है।

"अगले आदमी" के लिए इस सवाल का जवाब ऊपर छोड़ रहे हैं ...

<receiver android:name=".Test" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     <data android:scheme="file"/> 
    </intent-filter> 
</receiver> 
+1

ऐसा लगता है कि आधिकारिक दस्तावेज़ इस योजना को याद कर रहे हैं, जो निश्चित रूप से परेशान है क्योंकि उनका कोड वास्तव में काम नहीं करेगा। http://developer.android.com/reference/android/os/Environment.html – smith324

+1

रिसीवर को गतिशील रूप से जोड़ने वाले लोगों के लिए आप अपने IntentFilter इंस्टेंस पर addDataScheme ("file") को कॉल कर सकते हैं। – dhakim

8

आप <intentfilter> में <data android:scheme="file" /> टैग जोड़ने का प्रयास करें, किसी और रन टाइम पर पंजीकरण करते हैं।
रन समय पर, अपने प्रसारण रिसीवर का ऑब्जेक्ट बनाएं और इसे registerReceiver(obj) पर पास करें।

+0

धन्यवाद, मैंने आपके द्वारा पोस्ट किए जाने से कुछ मिनट पहले इसे समझ लिया था। –

+0

फिर आपको इसे उत्तर प्रश्न सूची में जोड़ना चाहिए। – Ronnie

+1

उम्म, यह है ... और इससे पहले कि आप एक उत्तर भी सबमिट कर चुके थे। मैंने आपके द्वारा किए जाने के 15 मिनट बाद एक उत्तर जोड़ा। –

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