Громкость гарнитуры Android и bluetooth

#android #bluetooth

#Android #bluetooth

Вопрос:

Моя проблема в том, как настроить громкость звука Bluetooth incall.

Поскольку для этого есть несколько приложений, ни одно из них не работает.

В любом случае — нет приложения — создайте его для себя. Я очень новичок в разработке Android, поэтому я попытался использовать AudioManager.setStreamVolume(), но безуспешно — после этого изменился только внутренний звук.

Даже игра с startBluetoothSco () не была ответом.

Посмотрев в logcat, как ОС реагирует на нажатие клавиш регулировки громкости, я обнаружил, что после startBluetoothSco() клавиши регулировки громкости в моем телефоне отправляют команды AT вместо искажения потоков (AT VGM = 0 …15).

Итак, мой код должен выглядеть примерно так:

 AudioManager audioManager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
audioManager.startBluetoothSco();
// send AT commands
audioManager.stopBluetoothSco();
 

Сканирование через Интернет дает мне ответ, что нет способа напрямую получить доступ к модему (и, возможно, к другим коммуникационным портам) из Android API.

Итак, может быть, у кого-нибудь есть какая-нибудь чертова идея, как предотвратить сброс громкости BT при каждом подключении / отключении от гарнитуры? Используя код, который я мог бы использовать сам, или используя какое-нибудь стороннее приложение 3rd, которое где-то доступно.

Операционная СИСТЕМА: GB 2.3.4, SGS

Спасибо за любые идеи.

Ответ №1:

Вы можете отправлять AT-команды через RFCOMM-соединение. Но вы должны сделать это до того, как Android создаст подключение к профилю гарнитуры / громкой связи (называется «Звук телефона» в меню настроек Bluetooth), или, по крайней мере, отсоедините HSP / HFP, затем подключитесь через RFCOMM к любому из двух (как HSP, так и HFP должны работать с незапрашиваемыми командами VGS), установите громкость,а затем снова подключите.