android连接蓝牙音响
生活随笔
收集整理的這篇文章主要介紹了
android连接蓝牙音响
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public class BluetoothConnect {private DeviceReceiver devicecReceiver;List<BluetoothDevice> devices = new ArrayList<BluetoothDevice>();private BluetoothA2dp mBluetoothA2dp;private BluetoothAdapter bluetoothAdapter; //藍牙適配器
public void setDevices(List<BluetoothDevice> devices) {this.devices = devices;}public void setDevicecReceiver(DeviceReceiver DeviceReceiver){this.devicecReceiver = DeviceReceiver;}//打開藍牙
public void openBt(){bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();if(!bluetoothAdapter.isEnabled()){bluetoothAdapter.enable();}else
{}}//搜索藍牙設備
public void searchBt(){devices.clear();bluetoothAdapter.startDiscovery();getBluetoothA2DP();devicecReceiver.deviceRecv();while(bluetoothAdapter.isDiscovering());bluetoothAdapter.cancelDiscovery();}//連接藍牙音響
public void connect(BluetoothDevice btDev){if(mBluetoothA2dp == null){return;}if(bluetoothAdapter == null){return;}if(btDev.getBondState() == BluetoothDevice.BOND_NONE){//btDevice.createBond();
try {Method createBondMethod = BluetoothDevice.class
.getMethod("createBond");createBondMethod.invoke(btDev);} catch (NoSuchMethodException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}while(btDev.getBondState() != BluetoothDevice.BOND_BONDED);try {Method connect = mBluetoothA2dp.getClass().getDeclaredMethod("connect", BluetoothDevice.class);connect.setAccessible(true);connect.invoke(mBluetoothA2dp,btDev);} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {e.printStackTrace();}}private void getBluetoothA2DP() {if (bluetoothAdapter == null) {return;}if (mBluetoothA2dp != null) {return;}bluetoothAdapter.getProfileProxy(MainFragmentActivity.instance, new BluetoothProfile.ServiceListener() {@Override
public void onServiceConnected(int profile, BluetoothProfile proxy) {if (profile == BluetoothProfile.A2DP) {//Service連接成功,獲得BluetoothA2DP
mBluetoothA2dp = (BluetoothA2dp) proxy;}}@Override
public void onServiceDisconnected(int profile) {}}, BluetoothProfile.A2DP);}public interface DeviceReceiver{public void deviceRecv();}
}
總結
以上是生活随笔為你收集整理的android连接蓝牙音响的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奔驰事件疑宝马紧急预案;巴黎圣母院失火;
- 下一篇: relative处理轮播图片隐藏切换