参考:
具体实现:
private static final String TAG = "BluetoothA2DPTest";
private BroadcastReceiver mBroadcastReceiver;
private BluetoothA2dp mBluetoothA2dp;
private BluetoothAdapter mBluetoothAdapter;
private String DEVICE_NAME = "KUWO_K1";
private BluetoothDevice mBluetoothDevice;
private MediaPlayer mMediaPlayer;
private void initParameters(){
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null){
Log.e(TAG,"have no bluetooth adapter.");
return;
}
if(!mBluetoothAdapter.isEnabled()){
mBluetoothAdapter.enable();
}else{
//开始搜索附近蓝牙
startDiscovery();
//绑定BluetoothA2DP,获得service
getBluetoothA2DP();
}
//监听广播
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
BluetoothDevice device;
switch (intent.getAction()) {
case BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED:
//
switch (intent.getIntExtra(BluetoothA2dp.EXTRA_STATE, -1)) {
case BluetoothA2dp.STATE_CONNECTING:
device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.i(TAG, "device: " + device.getName() +" connecting");
break;
case BluetoothA2dp.STATE_CONNECTED:
device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.i(TAG, "device: " + device.getName() +" connected");
//连接成功,开始播放
startPlay();
break;
case BluetoothA2dp.STATE_DISCONNECTING:
device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.i(TAG, "device: " + device.getName() +" disconnecting");
break;
case BluetoothA2dp.STATE_DISCONNECTED:
device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Log.i(TAG, "device: " + device.getName() +" disconnected");
// setResultPASS();
break;
default:
break;
}
//
break;
case BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED:
//
int state = intent.getIntExtra(BluetoothA2dp.EXTRA_STATE, -1);
switch (state) {
case BluetoothA2dp.STATE_PLAYING:
Log.i(TAG, "state: playing.");
break;
case BluetoothA2dp.STATE_NOT_PLAYING:
Log.i(TAG, "state: not playing");
break;
default:
Log.i(TAG, "state: unkown