2016-07-25 45 views
9

连接配对的设备我已连接条码扫描器设备检索其通过蓝牙的iOS

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的其附近并启用。但我没有在此方法中获得条码扫描仪信息。

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

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

我很感谢您的回复,谢谢。

+0

您确定它是蓝牙低功耗设备吗?目前尚不清楚其信息页面。 – Larme

+0

更新:我在文档(http://www.barcodedatalink.com/media/pdf/Motorola_CS3000_Brochure.pdf)上看到“蓝牙,2类,2.1版+增强型数据”。所以你不会在CoreBluetooth上找到它(这只适用于蓝牙低功耗)。你可以用ExternalAccessory.framework找到它。 – Larme

+0

@Larme,除了核心蓝牙和ExternalAccessory外,您能否提出任何解决方案,因为他们没有得到条码扫描器的详细信息。 – Vidhyanand

回答

0

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

检查IOBluetooth framework。坏消息是苹果在蓝牙经典开发方面的限制性很强,但希望有一些事情可以做。乍看之下,我没有看到任何与Core蓝牙等效的功能。

+1

仅适用于mac应用程序的“IOBluetooth”? – thesummersign

+0

IOBluetooth框架适用于OSX,不适用于iOS – JBA

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

  2. 如果扫描仪是一个BLE设备,有一些额外的工作要弄清楚它们是否连接。

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

    • 存储CBPeripheral的identifier,然后再连接到它。使用此标识符func retrievePeripheralsWithIdentifiers(_ identifiers: [NSUUID]) -> [CBPeripheral]。并检查您的扫描仪是否在返回数组中。

如果没有存储identifier,没有办法,你可以访问连接的BLE装置。

4

阅读以下答案:

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

可以帮助你。更重要的是,CoreBluetooth只允许您访问蓝牙低功耗设备。如果您需要加密,您可以配对这些设备,但通常您不需要。但是,没有API列出已配对的设备 - 您需要发现提供您感兴趣的服务的设备,并根据需要在您的应用中使用自己的用户界面列出一个列表。一旦确定了目标设备,您就可以启动连接。