无法使用CoreBluetooth

问题描述:

显示配对对话框

你好,我现在用的是苹果样品BLTE应用显示配对对话框。(iPhone到iPhone)无法使用CoreBluetooth

这是我创建的特征

self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID] 
                    properties: CBCharacteristicPropertyRead| CBCharacteristicPropertyNotifyEncryptionRequired 
                     value:nil 
                   permissions:CBAttributePermissionsReadable]; 

代码上面的代码从苹果公司的文章之一是采取link

这是我的代码,当我通知,并试图从特性

来读取

我的问题是,当我尝试此代码,我不明白的配对对话,而不是我得到didUpdateValueForCharacteristic

2017-04-24 17:24:58.636 BTLE Transfer[1351:457263] Error discovering characteristics: Authentication is insufficient. 

这个错误这基本上意味着,我需要一个配对阅读,但框架没有按” t显示配对对话框。

我在这里做错了什么?请帮忙。

编辑: 我更新了我的特点如下:

self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID] 
                    properties: CBCharacteristicPropertyRead| CBCharacteristicPropertyNotifyEncryptionRequired 
                     value:nil 
                   permissions:CBAttributePermissionsReadEncryptionRequired]; 
+0

加上'CBAttributePermissionsReadEncryptionRequired'我弄明白的权限? – Larme

+0

现在我得到这个错误'发现特征时出错:更改权限后不允许读取'。没有配对对话框。此外,它似乎并没有打我的'didReceiveReadRequest'委托现在 –

为什么配对对话框中没有显示出来,是因为我对无论是iPhone相同的iCloud帐户真正的问题。当我从一台设备上删除帐户时,配对对话框显示出来。

这个答案帮助link

如果您在使用蓝牙低功耗(不加密),没有配对对话...... 您必须实现你自己配对。

您可以订阅特征/获取通知并读取或写入,就这些了。您必须从CBPeripheralManagerDelegate实现相应的方法。设置你的peripheralManager的代理,这些方法将被调用。

https://developer.apple.com/reference/corebluetooth/cbperipheralmanagerdelegate?language=objc

+0

我正在使用上面的代码中提到的加密。根据苹果公司的文档,核心蓝牙框架应该在读/写失败时处理配对,但在我的情况下不会发生这种情况。这就是问题 –