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