Android BLE 中心和外设通信时 中心设备的onCharacteristicChanged() 没有回调
2016-06-14 17:42
1256 查看
今天为实现中心设备可以从外设中读取大数据的功能,想到一种方法,但是遇到了onCharacteristicChanged()一直收不到回调的问题:
经过研究发现了如下几个可能导致该问题的点:
1、在创建某个特征值A时,一定记得设置该特征值为PROPERTY_NOTIFY;例如:如下标红位置
A
= new BluetoothGattCharacteristic(UUID.fromString(NOTICE), BluetoothGattCharacteristic.PROPERTY_WRITE|
BluetoothGattCharacteristic.PROPERTY_READ|BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_WRITE|BluetoothGattCharacteristic.PERMISSION_READ);
2、在中心设备上在发现A特征值时要设置:bluetoothGatt.setCharacteristicNotification(A,,true);表示该特征值可以接收通知;
3、在外设中,当A的值改变时要通过bluetoothGattServer.notifyCharacteristicChanged(device,A,false)发送通知;可以在onNotificationSend中查看通知是否发送成功;
4.最后在中心设备的onCharacteristicChanged中查看是否有回调;
如果以上几个步骤都完成的话,应该是可以收到回调的,若再收不到回调,则可能是第2步设置的有问题,可以查看一下第2步是否返回true,依次查看后面几步是否有问题;
经过研究发现了如下几个可能导致该问题的点:
1、在创建某个特征值A时,一定记得设置该特征值为PROPERTY_NOTIFY;例如:如下标红位置
A
= new BluetoothGattCharacteristic(UUID.fromString(NOTICE), BluetoothGattCharacteristic.PROPERTY_WRITE|
BluetoothGattCharacteristic.PROPERTY_READ|BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_WRITE|BluetoothGattCharacteristic.PERMISSION_READ);
2、在中心设备上在发现A特征值时要设置:bluetoothGatt.setCharacteristicNotification(A,,true);表示该特征值可以接收通知;
3、在外设中,当A的值改变时要通过bluetoothGattServer.notifyCharacteristicChanged(device,A,false)发送通知;可以在onNotificationSend中查看通知是否发送成功;
4.最后在中心设备的onCharacteristicChanged中查看是否有回调;
如果以上几个步骤都完成的话,应该是可以收到回调的,若再收不到回调,则可能是第2步设置的有问题,可以查看一下第2步是否返回true,依次查看后面几步是否有问题;
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories