如何在不与Swift中的其他设备配对的情况下阅读外围设备的特性?

时间:2016-02-28 05:07:20

标签: ios swift bluetooth cbcentralmanager cbperipheral

我的应用程序既可以作为中央也可以作为外设。我有一个设备搜索另一个广播我的服务UUID。这工作正常,直到我连接到外围设备。然后是"蓝牙配对请求"出现在两个设备上,要求确认6位数代码并与另一个设备配对。我不希望出现此通知,并且我不希望设备开始出现在设置中 - >蓝牙。

CBCentralManager.connectPeripheral(CBPeripheral, options: nil)中,我认为可以在options字典中指定一个选项来阻止警报,但只有three并且它们都没有按我的意愿行事。

是否可以在不连接的情况下读取外围设备的RSSI和特性?或者是否可以连接到外围设备而不向用户显示配对通知?

感谢。

更新

我使用TSI解决了这个问题。他指导我参加一个名为BTLE Transfer的Apple示例项目。他说配对不应该发生,并且它不会在示例项目中发生。我构建了项目并运行它, 呈现与我的应用程序相同的完全配对请求。我不知道是否有其他人关心或者也在努力解决这个问题,但我会用新信息更新我的问题,如果找到解决方案,我会回答。

更新#2:

我相信这是iOS 8.4中的一个错误。我已向Apple提交了一份错误报告,概述了该错误的详细信息。

1 个答案:

答案 0 :(得分:0)

我正在为我的应用程序开发BLE模块,但遇到了同样的问题,但是经过大量的研发,我找到了解决方案。 (尽管杰克在3年前问了这个问题,他也许已经找到了解决方案,但我发布了答案,以便其他遇到相同问题的人都能从中受益。)

  

是否可以读取外设的RSSI和特性而无需   连接吗?

     

     

或者可以不显示   配对通知给用户?

     

是和否(取决于情况)

正在创建外围设备的是您,因此您决定是否需要“蓝牙配对请求”。基本上,您可以设置特征的属性和权限(正在发布)。您可以看到所有可用属性here和权限here。因此,通过在特征上设置CBCharacteristicPropertyRead属性和CBAttributePermissionsReadable权限,我无需配对即可读取特征数据。您可以查看如何根据特定的属性和权限here配置特征。