2011-07-08 24 views
8

Android 2.1のBluetoothヘッドセットの接続と切断イベントを検出する方法を見つけるために頭が痛いです。 APIレベル11には明示的なものがいくつかありますが、どのようにAPIレベル7でそれを行うのですか?私はちょうどユーザーがオーディオを再生できるヘッドセットやカーステレオの接続や切断を知りたいので、再生中の音を一時停止することができます。Android 2.1 Bluetoothオーディオの接続/切断を検出する

答えて

5

パブリックAPIはありません。 このanswer might helpは、リフレクションを使用してプライベートAPIを使用していました。

著者は、彼がどのように動作するかについてのコメントも投稿しました。

1

Thisは、Bluetooth接続/切断を検出するのに適しています。

これがうまくいかない場合は、AudioManager.isBluetoothA2dpOn()を呼び出して、Bluetoothが接続または切断されているかどうかを確認するサービスにタイマーを設定することもできます。

+0

、2.1以上1(レベル7)が、おかげで – rustyshelf

0

android.bluetooth.headset.action.STATE_CHANGEDアクションの場合は、BroadcastReceiverを設定する必要があります。インテントの余分なandroid.bluetooth.headset.extra.STATEには、現在の状態(切断、接続、接続)が含まれています。詳細情報Android source code

1

2.1で動作するかどうかはわかりませんが、2.2と2.3で動作します。

それは、Bluetoothヘッドセットの接続状態の変更をキャプチャします:

がために、以下のインテントフィルタonReceiveチェックで

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

とあなたのレシーバでの宣言:

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)かどうかを知りたい場合はいつでもアクセスしてください。かなりではありませんが、仕事は終わります。

また、チェックアウト:APIレベル8です https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java

関連する問題