मैनिफेस्ट में एपीआई स्तर 18 या उससे ऊपर लक्षित करते समय AudioManager.startBluetoothSCO() पर कॉल करते समय, दस्तावेज़ीकरण बताता है कि एक कच्चा ऑडियो कनेक्शन स्थापित किया गया है, और यदि एपीआई 17 या वर्चुअल वॉयस के नीचे लक्ष्यीकरण कॉल का उपयोग किया जाता है।AudioManager.startBluetoothSco() एंड्रॉइड लॉलीपॉप पर क्रैश
एपीआई स्तर 20 (एंड्रॉइड एल पूर्वावलोकन) तक यह किसी भी एपीआई को लक्षित करने के लिए ठीक काम करता है। हालांकि, नवीनतम एंड्रॉइड लॉलीपॉप का निर्माण करते समय एलपीएक्स 13 डी और लक्ष्यीकरण एपीआई स्तर 18 या उससे ऊपर का उपयोग करते समय मुझे निम्नलिखित स्टैक ट्रेस के साथ एक क्रैश मिलता है:
ई/एंड्रॉइड रनटाइम (31705): इसके कारण: java.lang.NullPointerException: इनकार करने का प्रयास आभासी विधि 'java.lang.String android.bluetooth.BluetoothDevice.getAddress()' एक शून्य ऑब्जेक्ट संदर्भ ई/एंड्रॉइड रनटाइम (31705) पर: android.os.Parcel.readException (Parcel.java:1546) ई/एंड्रॉइड रनटाइम (31705): android.os.Parcel.readException (Parcel.java:1493) ई/एंड्रॉइड रनटाइम (31705): android.media.IAudioService $ Stub $ Proxy.startBluetoothSco (IAudioService.java:1587) ई/एंड्रॉइड रनटाइम (31705): atroid.media.AudioManager.startBluetoothSco (AudioManager.java:1468)
यदि मैं एंड्रॉइड लॉलीपॉप पर एपीआई स्तर 17 या नीचे लक्षित करता हूं तो सब कुछ अपेक्षित काम करता है।
मेरा मानना है कि समस्या के स्रोत है कि फाइल AudioService.java लाइन 2392 में एपीआई स्तर 21 में हुआ Android के ऑडियो कोड में एक परिवर्तन में निहित है:
public void startBluetoothSco(IBinder cb, int targetSdkVersion) {
int scoAudioMode =
(targetSdkVersion < Build.VERSION_CODES.JELLY_BEAN_MR2) ?
SCO_MODE_VIRTUAL_CALL : SCO_MODE_UNDEFINED;
startBluetoothScoInt(cb, scoAudioMode);
}
यह SCO_MODE_UNDEFINED तरह लग रहा है के बजाय SCO_MODE_RAW होना चाहिए। यदि आप फ़ाइल को देखते हैं तो आप देख सकते हैं कि SCO_MODE_RAW कुछ स्थानों पर चेक किया गया है, लेकिन वास्तव में कभी भी कहीं भी पारित नहीं किया जाता है।
क्या कोई और इस दुर्घटना का सामना कर रहा है? क्या किसी को लक्ष्य एसडीके को 17 से घटाकर बेहतर सुधार के बारे में पता है? यदि नहीं, तो आप स्टार कृपया सकता है bug report मैं गूगल के साथ दायर एक सरल समाधान का अवसर बढ़ाने के लिए है कि यह :-)
भले ही मुझे क्रैश न हो, तो डिवाइस ब्लूटूथ माइक से ऑडियो रूट नहीं कर रहा है। –
मुझे एक ही समस्या है, माइक रूटिंग नहीं कर रहा है, इसके लिए कोई समाधान? –