2011-07-08 26 views
8

Me estoy rascando la cabeza tratando de encontrar una manera de detectar la conexión y desconexión de los auriculares bluetooth para Android 2.1. Veo en API Nivel 11 que hay algunos explícitos, pero ¿cómo lo hago en API nivel 7? Solo quiero saber cuándo el usuario conecta o desconecta un auricular o estéreo del automóvil capaz de reproducir audio, de modo que pueda pausar los sonidos que estoy reproduciendo.Android 2.1 Detectar conexión/desconexión de audio Bluetooth

Respuesta

5

No hay API públicas, Esta answer might help donde el autor utilizó API privadas utilizando reflexiones.

El autor también ha publicado un comentario sobre cómo lo hizo funcionar.

1

This parece una buena opción para detectar bluetooth connect/disconnect.

Si eso no funcionó, otra buena opción es configurar un temporizador en un servicio que llame al AudioManager.isBluetoothA2dpOn() para verificar si el bluetooth está conectado o desconectado.

+0

Esa es la API de nivel 8, una encima de 2,1 (nivel 7), pero gracias – rustyshelf

0

Tienes que configurar un BroadcastReceiver para android.bluetooth.headset.action.STATE_CHANGED acción. El android.bluetooth.headset.extra.STATE de Intent adicional contiene el estado actual (desconectado, conectado, conectado). Más información Android source code

1

No estoy seguro si esto funciona en 2.1, pero funciona en 2.2 y 2.3.

Se capturará cambios de estado de la conexión Bluetooth Headset:

declaramos lo siguiente intención de filtro

 <intent-filter > 
      <action android:name="android.bluetooth.headset.action.AUDIO_STATE_CHANGED" /> 
     </intent-filter> 

y en su receptor en jaque OnReceive para:

if ("android.bluetooth.headset.action.AUDIO_STATE_CHANGED".equals(intent.getAction())) { 
    headsetAudioState = intent.getIntExtra("android.bluetooth.headset.extra.AUDIO_STATE", -2); 
} 

y guardar la int como una variable estática. Acceda a él en cualquier momento que desee saber si el audio BT está conectado (1)/desconectado (0). No es bonito, pero hace el trabajo.

También puedes ver: https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java

Cuestiones relacionadas