感謝。 Detect programatically if headphone or bluetooth headset attached with android phone
Vipulは、ヘッドセットプロファイルを取得扱うBluetoothHeadsetManagerクラスを作成していたブロガーから呼ば
private BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener()
{
@Override
public void onServiceConnected(int profile, BluetoothProfile proxy)
{
if (profile == BluetoothProfile.HEADSET)
{
mBluetoothHeadset = (BluetoothHeadset) proxy;
if(mBluetoothHeadset.getConnectedDevices().size()>0) {
IS_BLUETOOTH_CONNECTED = true;
Logs.d(TAG,"Bluetooth device is connected");
}
}
}
@Override
public void onServiceDisconnected(int profile)
{
if (profile == BluetoothProfile.HEADSET)
{
mBluetoothHeadset = null;
IS_BLUETOOTH_CONNECTED = false;
Logs.d(TAG,"Bluetooth device is disconnected");
}
}
};
リスナーを作成したプロキシ
bluetoothAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.HEADSET);
へ
Connectには、 、聞くことを扱うブルートゥースが有効かどうかをチェックします。ブロードキャストレシーバを利用していません。
switch (audioMgr.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
if(BluetoothHeadsetManager.IS_BLUETOOTH_CONNECTED) {
//play notification
}
break;
case AudioManager.RINGER_MODE_VIBRATE:
if(BluetoothHeadsetManager.IS_BLUETOOTH_CONNECTED) {
//play notification
}
break;
case AudioManager.RINGER_MODE_NORMAL:
//play ringtone
break;
default:
break;
}}