Android - API для проверки того, какое устройство, проводная или USB-гарнитура воспроизводит звук, если оба подключены - PullRequest
0 голосов
/ 26 сентября 2019

У меня проблема с определением, какое устройство, проводная гарнитура или USB-гарнитура воспроизводит звук, когда они оба подключены к устройству Android.

Существует ли API , который позволит проверятьчто?

Я заметил, что разные устройства ведут себя по-разному.Например, на Samsung S10 + с Android 9 подключенное периферийное устройство используется для воспроизведения звука.Однако в Moto G6 Android 7 и Samsung S8 + Android 9 всегда используется проводная гарнитура, независимо от того, какое периферийное устройство было подключено позже.

Мне нужна эта информация для правильной настройки аудиопотока и отображения используемого в настоящее время устройства..

1 Ответ

0 голосов
/ 27 сентября 2019

Пожалуйста, ознакомьтесь с MediaRouter API.С его помощью вы можете зарегистрировать слушателя, чтобы получать уведомления при изменении текущей конфигурации аудиоустройства (интерфейс MediaRouter.Callback).Его обратные вызовы onRouteSelected и onRouteUnselected вызываются, когда аудиоустройство начинает / останавливает воспроизведение аудио соответственно.

Вот журнал с моего устройства MTK (сокращенно), демонстрирующий поток событий, которые произошли, когда я подключил проводные наушники во время прослушивания музыки через гарнитуру Jabra Bluetooth.

onRouteChanged RouteInfo {name= Наушники, описание = ноль, статус = ноль, категория = RouteCategory {имя = Типы систем = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable = false}, enabledTypes = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_TYEG_IU_NI_WE_NOWE_WIDE.0.5, описание = Bluetooth audio, status = null, категория = RouteCategory {name = Типы системы = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable = false}, SupportTypes = ROUTE_TYPE_LIVE_AUDIO, presentationDisplay = null}

имя_файла = имя_файла = имя_сообщения = имя_файла = в выбранном месте вызова= ноль, статус = ноль, категория = RouteCategory {имя = типы системы = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable = false}, SupportTypes = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO, presentationDisplay = null}

onRouteRemoved RouteInfo {имя = Jabra MINI v1.0.5, описание = аудио Bluetooth, состояние = ноль, категория = RouteCategory {имя = типы системы = ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupType = false)}ROUTE_TYPE_LIVE_AUDIO, presentationDisplay = null}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...