菜鸟教程小白 发表于 2022-12-12 09:30:17

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


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

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

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

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

<p>谢谢,</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>将 UUID 存储在 Keychain 而不是 NSUserDefaults 中。当用户执行重置所有设置时,应用的钥匙串(keychain)将被删除,因此您的 UUID 将消失。</p>

<p>如果您真的想将 NSUserDefaults 用于 UUID,您也可以在钥匙串(keychain)中存储一些任意标志。在这种情况下,您只需在应用启动时检查标志是否存在于钥匙串(keychain)中。如果没有,则丢弃 UUID 并创建一个新标志。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 6 使用已保存的 BLE 外围设备 UUID 重置所有设置问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23163652/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23163652/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 6 使用已保存的 BLE 外围设备 UUID 重置所有设置问题