簡體   English   中英

iOS 6 使用保存的 BLE 外設 UUID 重置所有設置問題

[英]iOS 6 Reset All Settings issue with saved BLE peripheral UUID

我正在 iOS 上開發一個 BLE 應用程序,在與 BLE 附件建立連接后,我將 CBPeripheral UUID 保存到 NSUSerDefaults。 這樣,如果稍后重新啟動應用程序,並且 BLE 附件未打開或超出范圍,我可以在應用程序的 UI 中將 BLE 附件顯示為“未找到”。 如果 BLE 配件隨后開啟或用戶進入 BLE 范圍內,應用程序將自動連接到 BLE 配件。

我面臨的問題是,在 iOS 6 中,如果用戶執行設置 -> 常規 -> 重置 -> 重置所有設置,下次啟動應用程序時,BLE 配件將具有不同的 CBPeripheral UUID。 這會導致我的應用程序和 UI 出現問題,因為將顯示兩個 BLE 附件:一個用於新的 UUID,另一個用於舊的 UUID(用戶過去連接過但不再存在)。

應用程序是否有辦法判斷用戶是否已執行“重置所有設置”,以便我可以清除已保存到首選項中的已連接 BLE 附件 (UUID) 列表?

或者關於如何處理這種情況的任何其他想法?

謝謝,

將 UUID 存儲在 Keychain 而不是 NSUserDefaults 中。 當用戶執行重置所有設置時,應用程序的鑰匙串將被刪除,因此您的 UUID 將消失。

如果您真的想將 NSUserDefaults 用於 UUID,您也可以在鑰匙串中存儲一些任意標志。 在這種情況下,您只需在應用程序啟動時檢查鑰匙串中是否存在該標志。 如果沒有,則丟棄 UUID 並創建一個新標志。

正如 adpalumbo 建議的那樣,使用鑰匙串來存儲您的 UDID。

這個UICkeychain庫是一個很好的並且易於使用的庫。

為什么不在每次啟動時都創建一個壓縮語句來檢查 UDID 是否已更改,並且您必須將 current_udid 保存在例如 sqlite 中,並且應用程序每次一旦注意到某些更改,您就可以實現您想要的內容時進行檢查..

希望這會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM