Tengo una aplicación que muestra un botón de alternar el altavoz cuando se usa en un teléfono. La palanca alterna el enrutamiento de audio entre el auricular del teléfono y el altavoz. Sin embargo, cuando la aplicación se ejecuta en una tableta (o en cualquier dispositivo que no tenga un auricular), me gustaría quitar la palanca, ya que todo el audio se enruta a través del altavoz.Detecta falta de auricular (solo altavoz) en un dispositivo Android
Idealmente, me gustaría utilizar algún tipo de llamada isEarpiecePresent()
, o tal vez marcar un indicador en algún objeto de configuración para encontrar esta información, pero no puedo encontrar nada del tipo en la API.
Intenté solucionar el problema llamando al AudioManager.setSpeakerphoneOn(false)
, luego revisando AudioManager.isSpeakerphoneOn()
, con la esperanza de que seguiría siendo cierto y podría desactivarlo. El sistema devolvió false
, aunque el audio sigue enrutando a través del altavoz.
Actualmente estoy pensando en verificar la capacidad de telefonía, aunque eso no encaje exactamente. ¿Alguna otra idea?
FYI, no creo que la capacidad de la telefonía será fiable, por ejemplo, el Samsung Galaxy Tab que tengo admite telefonía, pero no tiene un altavoz de auricular. http://en.wikipedia.org/wiki/Samsung_Galaxy_Tab –
¿Has verificado esto? http://developer.android.com/training/managing-audio/audio-output.html – Dusko
Gracias stetocina, pero desafortunadamente no hay nada en esos documentos con respecto a la detección de hardware de salida de audio. – Josh