安卓蓝牙BLE(2)

上一篇写到搜索蓝牙设备,这一篇写连接设备。

在onLeScan回调中把设备装到一个集合中进行展示,注意此处会出现设备被重复扫描到的现象,因为设备是不停的向外发送广播的,所以需要把重复的设备进行过滤掉。(需要注意onLeScan回调方法是在异步线程中进行的,如果需要刷新UI的话,需要到主线程中去刷新UI界面。)

关于界面展示列表我就不写了。

下面就是连接方法了。
核心方法:connectGatt(Context context, boolean autoConnect,BluetoothGattCallback callback);
第一个参数是上下文对象,第二个参数是是否自动连接,第三个参数是连接的回调。 返回值是BluetoothGatt对象,通过这个对象就可以和设备通讯了。

代码:

device.connectGatt(MainActivity.this,false,gattCallback);

 private BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
        //链接状态改变回调此方法。
        @Override
        public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
            super.onConnectionStateChange(gatt, status, newState);
            switch (newState){
                case BluetoothGatt.STATE_CONNECTED://已连接
                    Log.e("lee","已连接");
                    break;
                case BluetoothGatt.STATE_CONNECTING://连接中
                    Log.e("lee","连接中");
                    break;
                case BluetoothGatt.STATE_DISCONNECTED://已断开
                    Log.e("lee","已断开");
                    break;
                case BluetoothGatt.STATE_DISCONNECTING://断开中
                    Log.e("lee","断开中");
                    break;
            }
        }
    };

以上就完成了蓝牙设备的连接。

猜你喜欢

转载自blog.csdn.net/qq77485042/article/details/109310902