[英]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 显示一个列表。 一旦您确定了目标设备,您就可以启动连接。
Settings App 可以发现几乎所有类型的蓝牙设备,但系统只通知您的应用程序发现 BLE 设备。
重新启动您的扫描仪,并确保您的 iPhone 和扫描仪未与任何设备连接。启用您的扫描仪的可发现性。
如果设置应用程序可以找到扫描仪而您的演示没有,则扫描仪不是 BLE 设备,并且自 iPhone 4s 以来不受 iOS 支持。
如果扫描仪是 BLE 设备,则需要做一些额外的工作来确定它们是否已连接。
您可以在func centralManager(_ central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData advertisementData: [String : AnyObject], RSSI RSSI: NSNumber)
检查发现的CBPeripheral
的state
。
在连接之前存储 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.