ios - 从 iOS 应用检测附近的移动设备

标签 ios bluetooth core-bluetooth

是否可以创建一个 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/

相关文章:

ios - 导航栏未正确显示(显示为 float 而不是固定栏)

java - Java SE 的蓝牙 API

不允许 iOS 中央写入

ios - iOS 的 BT 4.0 LE 消费者文件

iOS RxSwift 如何将核心蓝牙连接到 Rx 序列?

ios - 在 GMSMapView 中检测平移手势

javascript - 是否可以使用我自己的方法扩展 UIAElementArray?

ios - 如何动态增加 ScrollView 的高度?

android - 蓝牙低功耗 (BLE) 设备与华为手机的连接问题

ios - 数据值溢出