Tôi có một thiết bị Android hoạt động như một thiết bị khách rảnh tay sử dụng hfp.
Tôi có thể nhận cuộc gọi và loa và micrô đang hoạt động như mong đợi.
Vấn đề của tôi là tôi dường như không thể kiểm soát âm lượng.
Tôi đã thử sử dụng các dòng mã sau để tìm đúng luồng, nhưng dường như không có dòng nào hoạt động.
Tôi đã theo dõi lệnh âm lượng được gửi từ điện thoại đến máy khách trong lớp HeadsetClientStateMachine
, dòng # 1822 trong liên kết sau: HeadsetClientStateMachine từ lolipop
case EVENT_TYPE_VOLUME_CHANGED:
if (event.valueInt == HeadsetClientHalConstants.VOLUME_TYPE_SPK) {
mAudioManager.setStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO, event.valueInt2, AudioManager.FLAG_SHOW_UI);
mVgsFromStack = true;
Log.d(TAG, "EventVolumeChange STREAM_BLUETOOTH_SCO value: " + event.valueInt2);
}
Khi tôi thay đổi âm lượng trên điện thoại, tôi thấy nhật ký hiển thị giá trị cập nhật của âm thanh, có nghĩa là setStreamVolume()
phương thức đang được gọi, nhưng âm lượng không thay đổi.
Có ai biết những gì có thể gây ra vấn đề này?
BIÊN TẬP:
Tôi vẫn đang tìm kiếm câu trả lời và hiện đang hướng tới việc triển khai HAL âm thanh. Tôi nghi ngờ rằng liên kết giữa HAL và trình điều khiển âm thanh bằng cách nào đó không chính xác ... Tôi không biết nhiều về triển khai cấp thấp và không chắc mình nên tìm kiếm những gì.