检索在iOS中通过蓝牙连接的配对设备

我已连接条形码扫描仪设备

条码扫描器信息

我想知道它的配对状态。 是否与设备连接。

- (void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { self.connectingPeripheral = peripheral; NSLog(@"@@@@@@Peripheral Name is:%@ Identifier:%@ Services:%@",peripheral.name,peripheral.identifier,peripheral.services); [self.bluetoothManager connectPeripheral: self.connectingPeripheraloptions: nil]; } 

配对列表

我正在获取有关Mac附近并启用的信息。 但我没有在此方法中获取条形码扫描仪信息。

我需要条码扫描器是否连接到设备。

任何人都可以建议如何找到条码扫描仪的连接。

感谢您的回复,谢谢。

阅读以下答案:

https://stackoverflow.com/a/11128869/5178107

可能会帮助你。 此外,CoreBluetooth仅允许您访问蓝牙低功耗设备。 如果需要加密,可以将这些设备配对,但通常不需要加密。 但是,没有用于列出配对设备的API – 您需要发现提供您感兴趣的服务的设备并在必要时使用您自己的应用程序UI提供列表。 识别目标设备后,即可启动连接。

  1. 设置应用程序可以发现几乎所有类型的蓝牙设备,但系统只会通知您的应用程序BLE设备。
    重新启动扫描仪,并确保您的iPhone和扫描仪未与任何设备连接。启用扫描仪的可发现性。
    如果设置应用程序可以在您的演示不能找到扫描仪时,则扫描仪不是BLE设备,并且自iPhone 4s起iOS不支持。

  2. 如果扫描仪是BLE设备,还需要做一些额外的工作来确定它们是否已连接。

    • 您可以在func centralManager(_ central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData advertisementData: [String : AnyObject], RSSI RSSI: NSNumber)检查发现的CBPeripheralstate func centralManager(_ central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData advertisementData: [String : AnyObject], RSSI RSSI: NSNumber)

    • 在连接之前存储CBPeripheral的identifier 。在func retrievePeripheralsWithIdentifiers(_ identifiers: [NSUUID]) -> [CBPeripheral]此标识符。并检查您的Scanner是否在返回数组中。

如果您不存储identifier ,则无法访问已连接的BLE设备。

正如评论中所提到的,Core Bluetooth适用于蓝牙低功耗,而条形码扫描器则是蓝牙2.1(经典)。 为此,你必须至少使用IOBluetooth。

检查IOBluetooth框架 。 坏消息是Apple对蓝牙经典开发的限制非常严格,但希望你可以做些什么。 乍看之下我没有看到任何与Core Bluetooth相同的东西。