我得到了Mac书(OS X 10.11.6)作为BLE Central设备,Android Phone(Os 6.0)作为外围设备。
Android外围设备使用属性BluetoothGattCharacteristic.PROPERTY_WRITE |来宣传特征-1 BluetoothGattCharacteristic.PROPERTY_NOTIFY
Mac book(BLE Central)使用特征-1 成功发现Android外设。 但是,当BLE Central尝试为此特性执行 setNotifyValue:YES 时,会出现以下错误。
更改通知状态时出错:错误域= CBErrorDomain代码= 0"未知错误。" UserInfo = {NSLocalizedDescription =未知错误。}
如果 外围设备是iPhone(iOS) 具有相似的特性,那么 setNotifyValue:YES 会成功。
我使用
尝试了特征-1 的以下组合1 - BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_INDICATE
2 - BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_NOTIFY
第3 - BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_INDICATE
但不幸的是,他们都没有工作。
有人可以帮我在Mac OS X Central上设置适用于Android周边特性的YES吗?
答案 0 :(得分:0)
在android上,你需要设置描述符来启用通知。
BluetoothGattService gattService = new BluetoothGattService(YOUR_SERVICE_UUID,
BluetoothGattService.SERVICE_TYPE_PRIMARY);
BluetoothGattCharacteristic characteristic = new BluetoothGattCharacteristic(YOUR_CHARACTERISTIC_UUID,
BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_INDICATE, BluetoothGattCharacteristic.PERMISSION_WRITE);
BluetoothGattDescriptor descriptor = new BluetoothGattDescriptor(UUID.fromString("00002902-0000-1000-8000-00805F9B34FB"),
BluetoothGattDescriptor.PERMISSION_READ | BluetoothGattDescriptor.PERMISSION_WRITE);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
characteristic.addDescriptor(descriptor);
gattService.addCharacteristic(characteristic);