iOS 6重置所有设置问题与保存的BLE外围设备UUID

时间:2014-04-18 22:59:07

标签: ios ios6 bluetooth-lowenergy

我正在iOS上开发一个BLE应用程序,在与BLE附件形成连接后,我将保存到NSUSerDefaults的CBPeripheral UUID。这样,如果稍后重新启动应用程序,并且BLE配件未开启或超出范围,我可以在应用程序的用户界面中显示BLE配件为"未找到&#34 ;。如果BLE配件随后开启或用户进入BLE范围,应用程序将自动连接到BLE配件。

我面临的问题是,在iOS 6中,如果用户进行了设置 - >一般 - >重置 - >重置所有设置,下次启动应用程序时,BLE附件将具有不同的CBPeripheral UUID。这会导致我的应用程序和用户界面出现问题,因为将显示两个BLE附件:一个用于新UUID,另一个用于旧UUID(用户过去已连接但不再存在)。

应用程序是否有办法判断用户是否已完成"重置所有设置"这样我就可以清除已保存到偏好中的已连接BLE配件(UUID)列表?

或者有关如何处理这种情况的任何其他想法?

谢谢,

3 个答案:

答案 0 :(得分:1)

将UUID存储在Keychain中而不是NSUserDefaults中。当用户执行“重置所有设置”时,应用程序的钥匙串将被删除,因此您的UUID将会消失。

如果您真的想将NSUserDefaults用于UUID,您也可以在Keychain中存储一些任意标志。在这种情况下,您只需在应用启动时检查钥匙串中是否存在该标志。如果没有,则删除UUID并创建一个新标志。

答案 1 :(得分:1)

正如adpalumbo建议的那样,使用钥匙串存储您的UDID。

这个UICkeychain库很好用,很容易使用。

答案 2 :(得分:0)

为什么不在每个启动时创建一个压缩语句来检查UDID是否被更改,并且你必须在sqlite中保存current_udid,并且一旦它注意到某些更改你可以实现应用程序检查你想要什么..

希望这会有所帮助