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

时间:2016-07-25 10:33:30

标签: ios objective-c bluetooth

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

Barcode Scanner Information

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

- (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];
}

Paired List

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

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

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

感谢您的回复,谢谢。

3 个答案:

答案 0 :(得分:4)

阅读以下答案:

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

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

答案 1 :(得分:3)

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

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

    • 您可以查看state中发现的CBPeripheral的{​​{1}}。

    • 在连接之前存储CBPeripheral func centralManager(_ central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData advertisementData: [String : AnyObject], RSSI RSSI: NSNumber)。在identifier中使用此标识符。并检查您的扫描仪是否在返回阵列中。

  3. 如果您不存储func retrievePeripheralsWithIdentifiers(_ identifiers: [NSUUID]) -> [CBPeripheral],则无法访问已连接的BLE设备。

答案 2 :(得分:0)

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

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