繁体   English   中英

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

[英]Retrieve paired devices which are connected through bluetooth in 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. Settings App 可以发现几乎所有类型的蓝牙设备,但系统只通知您的应用程序发现 BLE 设备。
    重新启动您的扫描仪,并确保您的 iPhone 和扫描仪未与任何设备连接。启用您的扫描仪的可发现性。
    如果设置应用程序可以找到扫描仪而您的演示没有,则扫描仪不是 BLE 设备,并且自 iPhone 4s 以来不受 iOS 支持。

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

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

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

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

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

检查IOBluetooth 框架 坏消息是苹果对蓝牙经典开发的限制非常多,但希望你能做些什么。 乍一看,我没有看到任何相当于 Core Bluetooth 的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM