如何在iOS中配对可扩展设备?

如何在iOS中配对可扩展设备?,ios,objective-c,bluetooth-lowenergy,core-bluetooth,Ios,Objective C,Bluetooth Lowenergy,Core Bluetooth,我使用CoreBluetooth连接BLE并配对 现在,当我回到我的应用程序屏幕时,我想确保BLE已经与iOS设备配对 若我将值存储在默认值中并删除应用程序,则这种情况将无法获取设备 如果用户从设置->蓝牙->设备列表中删除配对的蓝牙外围设备,则这种情况也无法识别 NSArray *ary = [self.bleMgr retrieveConnectedPeripheralsWithServices:@[[CBUUID UUIDWithString:@"180A"]]]; NSUUID *ns

我使用CoreBluetooth连接BLE并配对

现在,当我回到我的应用程序屏幕时,我想确保BLE已经与iOS设备配对

  • 若我将值存储在默认值中并删除应用程序,则这种情况将无法获取设备

  • 如果用户从设置->蓝牙->设备列表中删除配对的蓝牙外围设备,则这种情况也无法识别

    NSArray *ary = [self.bleMgr retrieveConnectedPeripheralsWithServices:@[[CBUUID UUIDWithString:@"180A"]]];
    
    NSUUID *nsUUID = [[NSUUID alloc] initWithUUIDString:identifier];
    NSArray *temp = [self.bleMgr retrievePeripheralsWithIdentifiers:@[nsUUID]];
    
  • 以上两行代码都没有给出可靠的结果


    如何在应用程序中获取配对的可编程设备?

    首次发现外设时,系统会生成一个标识符(UUID,由NSUID对象表示)来标识外设

    然后,您可以存储该标识符(例如,使用NSUserDefaults类的资源),然后使用它尝试使用CBCentralManager类的RetrievePeripheralsWithiIdentifiers:方法重新连接到外围设备

    下面介绍使用此方法重新连接到以前连接到的外围设备的一种方法

    knownPeripherals = [myCentralManager retrievePeripheralsWithIdentifiers:savedIdentifiers];
    
    NSUID类不是与CoreFoundation的免费桥接 CFUUID。如果需要,请使用UUID字符串在CFUUIDRef和NSUID之间进行转换 需要。不能保证两个NSUID对象通过 指针值(与CFUUID相同);使用isEqual(:)比较两个NSUID 实例

    请参阅:


    请参阅最后两部分:

    您每次都获得相同的uuid吗?@HSAM yes为每个ble获得相同的uuid。在这种情况下会发生什么!!1.如果我将值存储在默认值中并删除应用程序,则这种情况将无法获取设备。是的,正确,那么剩下的唯一方法是将uuid存储在keychainOK中,第二种情况,如果用户从设置->蓝牙->设备列表中删除配对的蓝牙外围设备,则此案例也无法识别。因此,现在您已使用do try catch块处理此案例,在catch中,您将收到无法连接的错误,因此您必须再次手动连接。rry,我无法获取您的try catch逻辑。你想把它放在哪里?***在连接外围设备或其他。