Не уверен, что это работает в 2.1, но работает в 2.2 и 2.3.
Будет фиксировать изменения состояния подключения Bluetooth-гарнитуры:
Объявите следующий фильтр намерений
<intent-filter >
<action android:name="android.bluetooth.headset.action.AUDIO_STATE_CHANGED" />
</intent-filter>
и в вашем Получателе в onReceive проверьте:
if ("android.bluetooth.headset.action.AUDIO_STATE_CHANGED".equals(intent.getAction())) {
headsetAudioState = intent.getIntExtra("android.bluetooth.headset.extra.AUDIO_STATE", -2);
}
и сохраните int как статическую переменную. Получите доступ к нему в любое время, когда хотите узнать, подключено ли аудио BT (1) / отключено (0). Не красиво, но выполняет свою работу.
Также проверьте:
https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java