OGeek|极客世界-中国程序员成长平台

标题: iOS 6 使用已保存的 BLE 外围设备 UUID 重置所有设置问题 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:30
标题: iOS 6 使用已保存的 BLE 外围设备 UUID 重置所有设置问题

我正在 iOS 上开发一个 BLE 应用程序,在与 BLE 附件建立连接后,我将 CBPeripheral UUID 保存到 NSUSerDefaults。这样,如果应用程序稍后重新启动,并且 BLE 附件未打开或超出范围,我可以在应用程序的 UI 中将 BLE 附件显示为“未找到”。如果 BLE 配件开启或用户进入 BLE 范围内,应用将自动连接到 BLE 配件。

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

应用程序是否有办法判断用户是否已完成“重置所有设置”,以便我可以清除已保存到首选项中的已连接 BLE 附件 (UUID) 列表?

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

谢谢,



Best Answer-推荐答案


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

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

关于iOS 6 使用已保存的 BLE 外围设备 UUID 重置所有设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23163652/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4