是否可以创建一个 iOS 应用来扫描附近的移动设备(例如 iPhone、Android、iPad 等),而无需在附近的移动设备上运行任何自定义应用?
我试过像这样使用 CoreBluetooth,在我的 iPhone 6+ 上运行:
[self.centralManager scanForPeripheralsWithServices:nil options:nil];
但它检测到的唯一附近设备是我的 iMac,它不会检测到我的 iPad Air 2 或我的蓝牙耳机。
我做错了什么吗?
最佳答案
Core Bluetooth 仅适用于低功耗蓝牙(又名蓝牙 4.0)设备,不适用于经典蓝牙设备。为了被发现,设备必须通告一个或多个 BLE 服务。你可以实现 CBPeripheralManager
来做到这一点,甚至还有 sample code来自 Apple 的“扫描仪”和“外围设备”方面。请注意,通过这种方式,您还可以发现其他移动设备(例如 Android 智能手机)或被其他移动设备发现。
我不知道是否可以检测 Hotspot 或 Handoff BLE 服务。 Core Bluetooth 不允许您访问“原始”低功耗蓝牙广告数据包,因此 Apple 可能会过滤掉一些东西。
如果您只想检测 iOS 设备(而不检测其他 BLE 设备/配件),您还可以使用 Multipeer Connectivity 框架。我个人觉得它更容易使用,它甚至提供了一个内置的 "discovered devices" view .但是您仍然需要在两侧运行自定义应用程序。
关于ios - 从 iOS 应用检测附近的移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27242392/