काम नहीं कर रहा है मैं एंड्रॉइड ओएस के संस्करण 4.0.3 (आईसीएस) के लिए एक एंड्रॉइड एप्लिकेशन लिख रहा हूं। मुद्दा यह है कि मुझे ब्रॉडकास्ट रिसीवर की ऑनसेसिव() विधि में मेरे Log.d() से आउटपुट नहीं मिल रहा है जिसका अर्थ है कि मेरा एप्लिकेशन प्रसारण को सही ढंग से प्रबंधित नहीं कर रहा है।ACTION_MEDIA_BUTTON के लिए ब्रॉडकास्ट रिसीवर
मैंने क्लिक किए गए ACTION_MEDIA_BUTTON पर कोड चलाने के तरीके के बारे में अनगिनत प्रश्न पढ़े हैं। जब मैंने काम नहीं किया है, तो मैंने यह भी देखने के लिए + चिपकाया कोड कॉपी किया है, यह देखने के लिए कि यह काम करेगा या नहीं।
ACTION_MEDIA_BUTTON मैं संभालना चाहता हूं एकल इयरफ़ोन पर बटन जो उपयोगकर्ता को पिकअप/कॉल कॉल करने, संगीत चलाने/रोकने की अनुमति देता है। इस बटन को संभालने के मेरे आवेदन के बजाय, जब मैं इसे क्लिक करता हूं, तो मेरे नेक्सस एस एंड्रॉइड पर स्टॉक म्यूजिक प्लेयर गाने चलाता है।
मैंने अपना कोड किसी अन्य वर्ग में नहीं रखा है, शायद यही कारण है कि यह काम नहीं कर रहा है?
IntentFilter mediaButtonFilter = new IntentFilter(
Intent.ACTION_MEDIA_BUTTON);
mediaButtonFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
BroadcastReceiver brMediaButton = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Log.d("Event", "Media button!");
this.abortBroadcast();
KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if(key.getAction() == KeyEvent.ACTION_UP) {
int keycode = key.getKeyCode();
if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
Log.d("TestApp", "Next Pressed");
} else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
Log.d("TestApp", "Previous pressed");
} else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
Log.d("TestApp", "Head Set Hook pressed");
}
}
}
};
registerReceiver(brMediaButton, mediaButtonFilter);
सभी मैं वास्तव में के लिए परीक्षण की आवश्यकता है:
यहाँ कोड विधि OnCreate() पर पाया है (इस विशिष्ट कोड मैं एक वेबसाइट के बाद कोड मैंने लिखा काम नहीं किया बंद की नकल की) KEYCODE_HEADSETHOOK लेकिन परीक्षण के लिए अन्य कोड रखने में कोई दिक्कत नहीं होती है, मैं इसे ठीक कर दूंगा जब मैं सब कुछ ठीक से काम कर सकता हूं।
मेरी प्रकट में:
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
मैं मूल रूप से सोचा था कि इस के बाद से मैं इस बात के लिए कोई भी अनुमतियां निर्दिष्ट नहीं किया है लेकिन मैं किसी भी त्रुटि संदेश प्राप्त नहीं किया था एक अनुमतियाँ मुद्दा हो सकता है।
जैसा कि मैंने पहले कहा था, मैंने इसके कई बदलावों की कोशिश की है। कॉमन्सवेयर के सुधारों के साथ इस लिंक broadcastreceiver onReceive problem ACTION_MEDIA_BUTTON Android पर कोड का उपयोग था। फिर भी, मैंने इसे संशोधित किया ताकि यह एक अलग वर्ग में न हो।
आपकी मदद के लिए अग्रिम धन्यवाद।
कृपया जांचें [यह] (http://stackoverflow.com/questions/3369554/how-to-handle-long-press-media-button-in-order-to लगभग -launch-गतिविधि) और [इस] (http://stackoverflow.com/questions/6603170/broadcastreceiver-onreceive-problem-action-media-button-android) आशा इससे आपकी समस्या का समाधान होगा – silwar
मेरे पास है आपके जैसा ही कोड और यह एंड्रॉइड 2.2/2.3 पर ठीक काम कर रहा है। लेकिन आप की तरह मैं इसे आईसीएस के साथ काम नहीं कर सकता ... – user1026605
वही है। यह एंड्रॉइड 4.0 से पहले काम करता है। एपीआई बदल गया या कुछ। – joepetrakovich