1,设置获取A2dp对象
/**
* 服务监听器,通过绑定服务获取BluetoothA2dp对象
*/
private BluetoothA2dp mBluetoothA2dp;
public class MyServiceListener implements BluetoothProfile.ServiceListener {
@Override
public void onServiceConnected(int profile, BluetoothProfile proxy) {
LoggerUtils.d(TAG + "onServiceConnected()");
/**
* use reflect method to get the Hide method "connectToDevice" in BluetoothA2DP
*/
if (profile == BluetoothProfile.A2DP) {
mBluetoothA2dp = (BluetoothA2dp) proxy;
}
}
@Override
public void onServiceDisconnected(int profile) {
LoggerUtils.d(TAG + "onServiceDisconnected " + profile);
if (profile == BluetoothProfile.A2DP) {
mBluetoothA2dp = null;
}
}
sBluetoothAdapter.getProfileProxy(context, new MyServiceListener(), BluetoothProfile.A2DP);
2.判断当前A2dp是否已经连接
if (sBluetoothAdapter.getProfileConnectionState(BluetoothProfile.A2DP) == BluetoothProfile.STATE_CONNECTED) {
return true;
}
3.获取连接的A2dp设备
public BluetoothDevice getConnectedA2dp(BluetoothA2dp mBluetoothA2dp) {
LoggerUtils.d(TAG + "getconnectedA2dp()");
List<BluetoothDevice> connectedDevices = mBluetoothA2dp.getConnectedDevices();
if (connectedDevices != null && connectedDevices.size() > 0) {
BluetoothDevice device = connectedDevices.get(0);
return device;
}
return null;
}
4.蓝牙的扫描
BluetoothAdapter sBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
sBluetoothAdapter.isEnabled()
sBluetoothAdapter.enable();
sBluetoothAdapter.startDiscovery();
sBluetoothAdapter