我现在正在我的 iOS 中使用蓝牙。 centralManagers
的一个功能是retrievePeripheralsWithIdentifiers
。 Apple 文档中对此功能的描述是A list of peripherals that the central manager is able to match to the provided identifiers.
。
现在我的问题是:centralManager
能够匹配哪些 peripherals
?我测试了两件事:
我使用以下代码启动了我的 centralManger
:
centralManager = CBCentralManager(delegate: self, queue: nil, options: nil)
所以没有任何恢复信息。如果我连接到 BLE 设备一次,我可以在即将到来的 session 中检索我的相同 BLE 设备。因此该函数不会搜索特定 centralManager
正在搜索的设备。
我测试的第二件事是删除我的应用程序并在之后重新安装它。我现在尝试再次接收之前连接的 BLE 设备。这次线路没有找到任何外围设备。因此该功能不会接收保存在 iPhone 设置 -> 蓝牙下的所有设备。
因此,如果函数不是仅检索连接到 centralManager
的设备,而不是手机知道的设备,那么它们检索的是什么?
另一个问题:是否有可能获得 iPhone 知道的所有外围设备?
最佳答案
CoreBluetooth 对外围设备隐藏 MAC 地址,而是为您提供唯一的标识符,IIRC,每个应用程序都是唯一的(不确定它们是否与同一供应商的不同应用程序不同)。因此,从本质上讲,这些不是您的设备已知的外围设备,因为这可能是隐私问题,而只是您的应用已知的外围设备。
关于ios - 检索外设与标识符 : What devices will be retrieved by this function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858885/