Beim Aufruf von AudioManager.startBluetoothSCO() während der Ausrichtung auf API-Stufe 18 oder höher im Manifest wird in der Dokumentation festgelegt, dass eine reine Audioverbindung hergestellt wird und API 17 oder darunter eine virtuelle Stimme verwendet wird Anruf wird verwendet.AudioManager.startBluetoothSco() stürzt auf Android Lollipop ab
Bis API-Level 20 (Android L Preview) funktionierte dies gut und zielte auf jede API ab. Bei der Verwendung des neuesten Android Lollipop Build LPX13D und der Targeting-API der Stufe 18 oder höher stürzt ich jedoch mit folgendem Stack-Trace ab:
E/AndroidRuntime (31705): Verursacht von: java.lang.NullPointerException: Versuch zum Aufruf virtuelle Methode 'java.lang.String android.bluetooth.BluetoothDevice.getAddress()' auf einem Nullobjekt Referenz E/AndroidRuntime (31705): bei android.os.Parcel.readException (Parcel.java:1546) E/AndroidRuntime (31705): at android.os.Parcel.readException (Parcel.java:1493) E/AndroidRuntime (31705): bei android.media.AudioService $ Stub $ Proxy.startBluetoothSco (IAudioService.java:1587) E/AndroidRuntime (31705): bei android.media.AudioManager.startBluetoothSco (AudioManager.java:1468)
Wenn ich API-Ebene 17 oder niedriger auf Android Lollipop anwende, funktioniert alles wie erwartet.
Ich glaube, die Ursache des Problems in einer Änderung Audiocode zu Androids liegt, die in API-Ebene 21 in der Datei AudioService.java Linie geschah 2392:
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);
}
Es ist wie SCO_MODE_UNDEFINED sieht stattdessen SCO_MODE_RAW sein sollte. Wenn Sie durch die Datei schauen, können Sie sehen, dass SCO_MODE_RAW an einigen Stellen überprüft wird, aber nirgends tatsächlich übergeben wird.
Hat noch jemand diesen Absturz erlebt? Kennt jemand eine bessere Lösung, als das Ziel-SDK auf 17 herabzustufen? Wenn nicht, könnten Sie bitte Sterne die bug report ich mit Google reichte die Chance zu erhöhen, dass es
Auch wenn ich den Absturz nicht erhalte, scheint das Gerät Audio vom Bluetooth-Mikrofon nicht zu routen. –
Ich habe das gleiche Problem, Mikrofon ist nicht Routing, keine Lösung dafür? –