onCharacteristicChanged 回调问题
16lz
2021-01-26
最近接触了蓝牙BLE4.0开发,今天是我接触的第二天,完全是盟的,以前根本就没听过BLE,所以遇到的问题就一大堆了,特此做个笔记,就不具体瞎扯了。
首先涉及到的还是搜索,连接,接收和发送数据。
1.搜索
官方api http://www.android-doc.com/reference/android/bluetooth/package-summary.html
final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);mBluetoothAdapter = bluetoothManager.getAdapter();
mBluetoothAdapter.startLeScan(mLeScanCallback); // 搜索蓝牙
mBluetoothAdapter.stopLeScan(mLeScanCallback) //结束搜索
2连接
mLeScanCallback 这个回调接口会返回device,通过device.connectGatt(this, false, mGattCallback);
mgattcallback又是一个回调,一般用到 onConnectionStateChange(连接状态改变),
onCharacteristicRead(readCharacteristic的时候会触发),onCharacteristicWrite(发数据触发),
onServicesDiscovered(查找service,一般连接成功就调用mBluetoothGatt.discoverServices();去触发),onCharacteristicChanged(需要先打开notify,在查询服务的时候去打开),如果BLE设备返回数据的时候会通过这个方法回调获得数据,然后在特征里面取。
3 数据
readCharacteristic(BluetoothGattCharacteristic characteristic)//读数据
writeCharacteristic(BluetoothGattCharacteristic characteristic) //写数据、
上面都是我个人的观点,有错误的地方,欢迎大家指出
更多相关文章
- 一句话锁定MySQL数据占用元凶
- Android(安卓)adb常见问题整理
- Android(安卓)display架构分析(一)
- Android(安卓)如何修改自动同步数据的默认开关 M
- Android之 Viewpager
- 安卓 Android之开发简单小应用(二)
- 第八次课——数据存储方式
- lobiner 关于android中的sqlite数据库操作
- Android中SharePreferences的简单实现