2017-01-11 7 views
1

Извините за вопрос. Это мой первый раз здесь. Я сделал поиск по сети, но результата не получил. На самом деле нужна помощь, чтобы прояснить эту проблему. У меня есть два вопроса об обнаружении гарнитуры USB и состоянии.USB-гарнитура гарнитуры типа-c в Android

  1. Мое целевое устройство работает под управлением Android версии 7.1.1. Устройство имеет разъем USB-типа c и поддерживает USB-гарнитуру типа-c. Однако кажется, что AudioService не отправит намерение, когда статус USB-гарнитуры изменился. Требуется ли OEM для реализации своего собственного намерения?

  2. Для традиционной проводной гарнитуры я могу использовать AudioManager.isWiredHeadsetOn(), чтобы проверить его статус. Но USB-гарнитура типа-c кажется не работает таким образом. Есть ли другой способ получить статус USB-гарнитуры?

Спасибо, Lei

+0

Такая же проблема здесь. Я заметил, что событие 'android.media.AUDIO_BECOMING_NOISY' было отправлено после отсоединения гарнитуры типа-c. Итак, я предполагаю, что что-то было реализовано внутренним, но не показано как API. – Ornithopter

+0

С выходом Pixel 2 мы столкнулись с этой проблемой, поскольку на этом телефоне нет разъема для наушников. Нам нужен способ узнать, подключены ли наушники - даже через ключ. –

ответ

0

Вы можете зарегистрировать BroadcastReceiver с фильтром для AudioManager.ACTION_HEADSET_PLUG

Затем в приемнике вы можете получить список подключенных устройств с devices = audioManager.getDevices(GET_DEVICES_OUTPUTS)

Тогда вы можете отфильтровать этот список, выбрав USB-гарнитуру, проверив тип:

device.type == AudioDeviceInfo.TYPE_USB_HEADSET

Вы можете также посмотреть на TYPE_WIRED_HEADPHONE, TYPE_WIRED_HEADSET, TYPE_LINE_ANALOG

 Смежные вопросы

  • Нет связанных вопросов^_^