1. 程式人生 > >iOS 開發——CoreBluetooth藍芽開發(一)

iOS 開發——CoreBluetooth藍芽開發(一)

最近要做關於iOS上的藍芽開發專案,為此閱讀了蘋果的官方文件,這裡做一些翻譯和摘錄和大家共享交流。(如需轉載請註明出處)

關於Core BlueTooth

Core BlueTooth是一個iOS的開發框架,其中包含了若干類,能夠和低功耗藍芽(符合藍芽4.0規範)裝置進行通訊。例如,你的iPhone或者MacBook能夠發現、尋找諸如心率儀、電子溫度計等裝置並與之互動。你的iPhone和MacBook還能作為外圍裝置,向其他主裝置提供資訊。作為一個開發者,你不必為底層如何實現傷腦筋,因為蘋果都幫你實現好了,你只管用便是。

Core Bluetooth在藍芽應用中的角色

Central(中心裝置)和Peripheral(外圍裝置)

Central和Peripheral是藍芽應用中兩個主要的角色。Peripheral一般擁有其他裝置所需要的資料,而Central則會使用Peripheral提供的這些資訊來完成一些任務,有點類似計算機網路通訊中的C/S結構。例如,心率儀作為一個Peripheral可以向iOS應用提供溫度,iOS應用進而通過友好的方式將該資料顯示給使用者。

這裡寫圖片描述

根據角色劃分不同,Central和Peripheral所做的事也有所區別。Peripheral通過廣播資料來向全世界宣佈自己的存在,而Central則通過掃描來發現自己感興趣的Peripheral。一旦Cenral發現自己感興趣的Peripheral,便會發出連線請求,之後便會和該Peripheral進行互動,而Peripheral則會通過合適的方式來響應請求。

這裡寫圖片描述

iOS應用的狀態對BlueTooth任務產生的影響

當你的iOS應用處於後臺或者掛起狀態時,會對BlueTooth任務產生影響。預設情況下,BlueTooth是不會在應用處於後臺或掛起時執行的,除非你特別制定Central和Peripheral可以在後臺或者掛起時繼續執行。即便如此,BlueTooth任務的執行還是與前臺執行時略有區別,這些差異在設計應用時都應當考慮進去。

即使是支援後臺執行的應用也會因為種種原因被釋放記憶體,這時你可以通過儲存Central和Peripheral的狀態並在應用再次啟動時恢復,以此來支援長耗時的藍芽任務。

(未完待續)