2011-07-08 21 views
8

का पता लगाएं मैं ब्लूटूथ हेडसेट कनेक्ट करने और Android 2.1 के लिए ईवेंट डिस्कनेक्ट करने का तरीका ढूंढने का प्रयास करने के लिए अपने सिर को खरोंच कर रहा हूं। मैं एपीआई स्तर 11 में देखता हूं कि कुछ स्पष्ट हैं, लेकिन मैं इसे एपीआई स्तर 7 में कैसे कर सकता हूं? मैं सिर्फ यह जानना चाहता हूं कि उपयोगकर्ता ऑडियो चलाने में सक्षम हेडसेट या कार स्टीरियो को कनेक्ट या डिस्कनेक्ट करता है, ताकि मैं जो आवाज़ें खेल रहा हूं उसे रोक सकूं।एंड्रॉइड 2.1 ब्लूटूथ ऑडियो कनेक्ट/डिस्कनेक्ट

उत्तर

5

कोई सार्वजनिक एपीआई नहीं है, यह answer might help जहां लेखक ने प्रतिबिंबों का उपयोग करके निजी एपीआई का उपयोग किया था।

लेखक ने यह भी टिप्पणी की है कि उसे काम करने के तरीके के बारे में एक टिप्पणी भी मिली है।

1

This ब्लूटूथ कनेक्ट/डिस्कनेक्ट का पता लगाने के लिए एक अच्छा विकल्प दिखता है।

यदि यह काम नहीं करता है, तो ब्लूटूथ कनेक्ट या डिस्कनेक्ट होने पर यह जांचने के लिए AudioManager.isBluetoothA2dpOn() पर कॉल करने वाला एक और अच्छा विकल्प है।

+0

एपीआई स्तर 8 है यही कारण है, 2.1 से ऊपर एक (लेवल 7), लेकिन धन्यवाद – rustyshelf

0

आपको कार्रवाई के लिए BroadcastReceiver सेट अप करना होगा। इरादे के अतिरिक्त android.bluetooth.headset.extra.STATE में वर्तमान स्थिति (डिस्कनेक्ट, कनेक्टिंग, कनेक्ट) शामिल है। अधिक जानकारी Android source code

1

यह सुनिश्चित नहीं है कि यह 2.1 में काम करता है, लेकिन यह 2.2 और 2.3 में काम करता है।

यह ब्लूटूथ-हेडसेट कनेक्शन स्थिति परिवर्तन पर कब्जा होगा:

निम्नलिखित आशय फिल्टर

 <intent-filter > 
      <action android:name="android.bluetooth.headset.action.AUDIO_STATE_CHANGED" /> 
     </intent-filter> 

और के लिए onReceive जाँच में अपने रिसीवर में घोषित:

if ("android.bluetooth.headset.action.AUDIO_STATE_CHANGED".equals(intent.getAction())) { 
    headsetAudioState = intent.getIntExtra("android.bluetooth.headset.extra.AUDIO_STATE", -2); 
} 

और बचाने के एक स्थिर चर के रूप में int। किसी भी समय जब आप जानना चाहते हैं कि बीटी ऑडियो कनेक्ट है (1)/डिस्कनेक्ट (0)। सुंदर नहीं है, लेकिन काम पूरा हो जाता है।

इसके अलावा बाहर की जाँच: https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java

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