我的程序允许用户连接到蓝牙设备,它将保存UUID。下次启动应用程序时,它会自动连接到先前连接的设备。
我将[NSUserDefaults standardUserDefaults]
中的UUID保存在NSArray中。
我可以使用retrievePeripherals
CBCentralManager
方法检索第一个设备并连接到它,然后传入我存储的UUID数组。
我的问题是,我不知道如何处理错误。我希望程序知道它是否无法连接到第一个UUID并转到下一个UUID。委托方法didRetrievePeripherals
似乎检索具有特定UUID的设备,即使我关闭了设备。
其他人是否有同样的问题?
答案 0 :(得分:1)
retrievePeripherals:
使用核心蓝牙内部数据库返回CBPeripheral
。连接到外围设备后,它将保留在数据库中,您可以检索它。不检查外围设备是否打开。
不幸的是,没有办法确定设备不可用的原因,但您可以创建自己的启发式方法:
didConnectPeripheral:
回调,那么该外围设备被视为不在范围内你可以继续下一个外围。 请注意connectPeripheral
将继续运行(即使在后台),只要它不成功或未取消/终止。