【发布时间】:2017-04-24 12:07:41
【问题描述】:
您好,我正在使用 Apple Sample BLTE 应用程序来显示配对对话框。(iPhone 到 iPhone)
这是我创建特征的代码
self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]
properties: CBCharacteristicPropertyRead| CBCharacteristicPropertyNotifyEncryptionRequired
value:nil
permissions:CBAttributePermissionsReadable];
以上代码取自 Apple 的一篇文章link
这是我在通知并尝试读取特征时的代码
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]]) {
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
[peripheral readValueForCharacteristic:characteristic];
}
我的问题是,当我尝试此代码时,我没有看到配对对话框,而是在 didUpdateValueForCharacteristic 中收到此错误
2017-04-24 17:24:58.636 BTLE Transfer[1351:457263] Error discovering characteristics: Authentication is insufficient.
这基本上意味着我需要配对才能阅读,但框架没有显示配对对话框。
我在这里做错了什么?请帮忙。
编辑: 我更新了我的特征如下:
self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]
properties: CBCharacteristicPropertyRead| CBCharacteristicPropertyNotifyEncryptionRequired
value:nil
permissions:CBAttributePermissionsReadEncryptionRequired];
【问题讨论】:
-
添加
CBAttributePermissionsReadEncryptionRequired到权限? -
我现在在更改权限后收到此错误
Error discovering characteristics: Reading is not permitted.。仍然没有配对对话框。而且它现在似乎没有击中我的didReceiveReadRequest代表
标签: ios objective-c iphone core-bluetooth