ios - 检索外设与标识符 : What devices will be retrieved by this function?

标签 ios swift bluetooth-lowenergy

我现在正在我的 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/

相关文章:

android - 在没有使用 nRF Connect 的解决方法的情况下,无法使用自定义应用程序连接到 BLE 设备

ios - 内部分发仅限于多种设备?

ios - 如何快速正确激活约束

c++ - 不能使用命名空间,也不能在我的 .h 文件中包含标准 C++ 库

swift - 在 Swift 中将 JSONEncoder 用于 Equatable 方法

android - 处理程序后执行队列的顺序不正确

ios - iOS 崩溃日志的格式、负载和大小是什么

ios - 如何处理从另一个应用程序发送到我自己的 iOS 应用程序的 'Open in...' 文件?

objective-c - UIApplication sendEvent 不适用于 popViewControllerAnimated

android - Android 中的 Gatt 服务器设备名称长度