是否可以创建一个 iOS 应用程序来扫描附近的移动设备(例如 iPhone、Android、iPad 等),而无需在附近的移动设备上运行任何自定义应用程序?
我尝试过像这样使用 CoreBluetooth,在我的 iPhone 6+ 上运行:
[self.centralManager scanForPeripheralsWithServices:nil options:nil];
但它检测到的唯一附近设备是我的 iMac,它不会检测到我的 iPad Air 2 或我的蓝牙耳机。
难道我做错了什么?
核心蓝牙仅适用于蓝牙低功耗(又称蓝牙 4.0)设备,不适用于经典蓝牙设备。为了被发现,设备必须通告一项或多项 BLE 服务。你可以实施CBPeripheralManager
做到这一点甚至还有示例代码 https://developer.apple.com/library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012927来自 Apple 的“扫描仪”和“外围设备”方面。请注意,通过这种方式,您还可以发现其他移动设备或被其他移动设备发现,例如 Android 智能手机。
我不知道是否可以检测热点或切换 BLE 服务。核心蓝牙不允许您访问“原始”蓝牙低功耗广告数据包,因此苹果可能会过滤掉一些内容。
如果您只想检测 iOS 设备(而不检测其他 BLE 设备/配件),您还可以使用 Multipeer Connectivity 框架。我个人觉得它更容易使用,甚至还提供了一个内置的“发现的设备”视图 https://developer.apple.com/Library/ios/documentation/MultipeerConnectivity/Reference/MCBrowserViewController_class/index.html。但您仍然必须在两侧运行自定义应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)