Обзор
В настоящее время я работаю над приложением для Android, которое поддерживает вызовы VoIP (используя webrtc ). Все работает отлично, но сейчас я пытаюсь добавить поддержку Bluetooth-гарнитур. Я хочу, чтобы на вызовы отвечали / зависали автоматически (без прикосновения пользователя к экрану устройства), если:
- У пользователя есть Bluetooth-гарнитура, подключенная к его устройству
- Нажата кнопка ответа / отбоя
Задача
Я все еще пытаюсь заставить эту работу. Я прочитал все вопросы о переполнении стека (например, , и , ), но все же не повезло.
Что я пробовал:
Получить прокси профиля Bluetooth, используя bluetoothAdapter.getProfileProxy(context, serviceListener, BluetoothProfile.HEADSET)
.
На служебном приемнике (a BluetoothProfile.ServiceListener
) проверьте, есть ли у полученного BluetoothHeadset
подключенное устройство Bluetooth. Если true, зарегистрируйте BroadcastReceiver
с IntentFilter
, который имеет действия android.intent.action.MEDIA_BUTTON
, android.media.ACTION_SCO_AUDIO_STATE_UPDATED
и android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED
и вызовите audioManager.startBluetoothSco()
.
Я получаю трансляции только для действия android.media.ACTION_SCO_AUDIO_STATE_UPDATED
. Что не так с моим подходом?
Буду признателен за любую помощь.