Обнаружение отсутствия динамика (только громкая связь) на устройстве Android

У меня есть приложение, которое отображает кнопку переключения громкой связи при использовании на телефоне. Тумблер переключает передачу звука между наушником телефона и громкой связью. Однако, когда приложение запускается на планшете (или любом другом устройстве, в котором отсутствует наушник), я бы хотел убрать переключатель, поскольку весь звук передается через громкую связь.

В идеале я бы хотел использовать какой-то вызов isEarpiecePresent () или, может быть, проверить флаг на каком-то объекте конфигурации, чтобы найти эту информацию, но я не могу найти ничего подобного в API.

Я попытался обойти эту проблему, вызвав AudioManager.setSpeakerphoneOn (false) , затем проверив AudioManager.isSpeakerphoneOn () , надеясь, что он все равно вернет true, и я смогу ввести прочь от этого. Система вернула false , хотя звук все еще проходит через динамик.

В настоящее время я подумываю проверить возможности телефонии, хотя это не совсем подходит. Есть ли другие идеи?

17
задан Josh 4 August 2011 в 14:18
поделиться