问题 CoreBluetooth:唯一UUID的生命周期是多少


之后 这个问题,

连接到外围设备后,我可以检索它 CFUUIDRef,这是独一无二的,可以用来重新连接 retrievePeripherals。但是,我发现在关闭应用程序后我无法使用它重新连接。

是独一无二的 UUID 连接后生成的只对应用程序的生命周期有效,或者我们是否应该保存它以供以后使用?我试图让我的应用程序记住一个特定的外围设备,但除此之外 peripheral.UUID,我不知道任何其他唯一标识符。


4469
2017-07-10 16:23


起源



答案:


长话短说,是的,你可以使用 UUID 即使关闭应用程序后,也要重新连接到同一设备(完全按照您的说法)。我已经完成了我的每一个核心蓝牙应用程序,我保证100%,你应该如何做到这一点。

但是我假设你没有与外围设备配对?那是一个很大的问题。您需要实际建立配对请求并让外围设备显示在蓝牙表中。该 UUID 然后将使用iOS设备进行固化,直到您刷新iOS设备的网络设置。 (这当然取决于没有芯片组。虽然这对于业内一些最常见的设备来说都是正确的,但它可以在没有它的情况下完成。指出你的芯片组我会确认我是否知道一种方式或另一种方式)

另一种可能是您的BLE设备存在固件问题,在断开连接后,它会强制自己进入广告模式或其他状态。这也会影响你重新连接的能力。如果您有任何疑问,请告诉我!


12
2017-07-10 16:57



啊,配对正是我需要解决的问题。我现在的主要问题是我在没有完整的BLE模块的情况下开发。所以,如果在配对时必须在app / iOS端做什么,你能告诉我什么吗?我之前问过这个问题,但答案很模糊。我会找出芯片组然后再回复你。谢谢! - loadedion
iOS方面真的依赖于芯片组(也是固件)..所以在你发现它之后再说吧..不想给你糟糕的英特尔 - Tommy Devoy
@TommyDevoy只是为了澄清:当我们进入'didConnectPeripheral'功能并进一步发现服务或是否需要遵循其他程序来配对特定设备时,配对是否已完成? - Jobs
@Jobs据我所知,没有事件表明该设备已经配对。但是,您可以观察UIApplicationDidBecomeActiveNotification,以确定用户何时关闭“配对”弹出窗口,然后您可以调用retrieveConnectedPeripheralsWithServices以获取系统连接设备的列表,并检查您的系统是否存在。如果配对与否,您也可以在不知情的情况下发现服务。如果需要配对,则系统将显示正确的警报。 - Wojciech Kulik
@TommyDevoy当外设更改其peripheral.uuid时你会怎么做?如果标识符已更改,如何重新连接到同一设备? - Changerrs


答案:


长话短说,是的,你可以使用 UUID 即使关闭应用程序后,也要重新连接到同一设备(完全按照您的说法)。我已经完成了我的每一个核心蓝牙应用程序,我保证100%,你应该如何做到这一点。

但是我假设你没有与外围设备配对?那是一个很大的问题。您需要实际建立配对请求并让外围设备显示在蓝牙表中。该 UUID 然后将使用iOS设备进行固化,直到您刷新iOS设备的网络设置。 (这当然取决于没有芯片组。虽然这对于业内一些最常见的设备来说都是正确的,但它可以在没有它的情况下完成。指出你的芯片组我会确认我是否知道一种方式或另一种方式)

另一种可能是您的BLE设备存在固件问题,在断开连接后,它会强制自己进入广告模式或其他状态。这也会影响你重新连接的能力。如果您有任何疑问,请告诉我!


12
2017-07-10 16:57



啊,配对正是我需要解决的问题。我现在的主要问题是我在没有完整的BLE模块的情况下开发。所以,如果在配对时必须在app / iOS端做什么,你能告诉我什么吗?我之前问过这个问题,但答案很模糊。我会找出芯片组然后再回复你。谢谢! - loadedion
iOS方面真的依赖于芯片组(也是固件)..所以在你发现它之后再说吧..不想给你糟糕的英特尔 - Tommy Devoy
@TommyDevoy只是为了澄清:当我们进入'didConnectPeripheral'功能并进一步发现服务或是否需要遵循其他程序来配对特定设备时,配对是否已完成? - Jobs
@Jobs据我所知,没有事件表明该设备已经配对。但是,您可以观察UIApplicationDidBecomeActiveNotification,以确定用户何时关闭“配对”弹出窗口,然后您可以调用retrieveConnectedPeripheralsWithServices以获取系统连接设备的列表,并检查您的系统是否存在。如果配对与否,您也可以在不知情的情况下发现服务。如果需要配对,则系统将显示正确的警报。 - Wojciech Kulik
@TommyDevoy当外设更改其peripheral.uuid时你会怎么做?如果标识符已更改,如何重新连接到同一设备? - Changerrs