Khi thực hiện cuộc gọi đến AudioManager.startBluetoothSCO() trong khi nhắm mục tiêu API cấp 18 trở lên trong Tệp kê khai, tài liệu cho biết rằng kết nối âm thanh thô được thiết lập và nếu nhắm mục tiêu API 17 trở xuống bằng giọng nói ảo cuộc gọi được sử dụng.AudioManager.startBluetoothSco() treo trên Android Lollipop
Cho đến cấp API 20 (Xem trước Android L) điều này hoạt động tốt, nhắm mục tiêu bất kỳ API nào. Tuy nhiên, khi sử dụng LPX13D mới nhất của Android Lollipop và nhắm mục tiêu API cấp 18 trở lên, tôi gặp sự cố với dấu vết ngăn xếp sau:
E/AndroidRuntime (31705): Nguyên nhân: java.lang.NullPointerException: Cố gắng gọi phương thức ảo 'java.lang.String android.bluetooth.BluetoothDevice.getAddress()' trên tham chiếu đối tượng null E/AndroidRuntime (31705): tại android.os.Parcel.readException (Parcel.java:1546) E/AndroidRuntime (31705): tại android.os.Parcel.readException (Parcel.java:1493) E/AndroidRuntime (31705): tại android.media.IAudioService $ Stub $ Proxy.startBluetoothSco (IAudioService.java:1587) E/AndroidRuntime (31705): tại android.media.AudioManager.startBluetoothSco (AudioManager.java:1468)
Nếu tôi nhắm mục tiêu cấp API 17 trở xuống trên Android, mọi thứ hoạt động như mong đợi.
tôi tin rằng nguồn gốc của vấn đề nằm ở sự thay đổi mã âm thanh của Android đã xảy ra ở cấp độ API 21 trong file dòng AudioService.java 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);
}
Dường như SCO_MODE_UNDEFINED thay vì nên SCO_MODE_RAW. Nếu bạn xem qua tệp, bạn có thể thấy rằng SCO_MODE_RAW được chọn ở một vài nơi, nhưng không bao giờ thực sự được chuyển vào bất kỳ đâu.
Có ai khác đang gặp sự cố này không? Có ai biết sửa chữa tốt hơn là hạ cấp SDK mục tiêu xuống 17 không? Nếu không, bạn có thể vui lòng sao các bug report Tôi nộp với Google để nâng cao khả năng nó sẽ được xem xét :-)
Ngay cả khi tôi không gặp sự cố, thiết bị dường như không định tuyến âm thanh từ micrô Bluetooth. –
tôi có cùng một vấn đề, mic không định tuyến, bất kỳ giải pháp cho điều đó? –