
【開發筆記】我與藍牙手環的遠距戀愛:CoreBluetooth 進階應用
資訊/科技

奧提斯
更新日:2025年4月22日
上一篇我們搞定了基本的藍牙配對、探索 Service 與 Characteristic,現在讓我們把這段關係更進一步(喂),一起來看看以下幾個進階技巧,讓你不只能「連上」,還能「穩定交往」:
Notification:讓手環主動「找你聊天」
你總不能一直瘋狂讀資料吧?(這樣像恐怖情人)
這時就要用到 Notification,讓手環有新數據時主動通知你!
peripheral.setNotifyValue(true, for: characteristic)
這樣當手環有新心率、步數等更新時,就會觸發:
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // 收到通知啦!來處理資料 }
就像你開啟了「已讀通知」,對方有新訊息立刻推播給你 💬。
寫入資料:你也該主動表達愛了!
有時候你會需要「寫」資料給手環,比如設定鬧鐘、啟動偵測等功能。
let command: [UInt8] = [0x01, 0xFF] // 依照手環協議 let data = Data(command) peripheral.writeValue(data, for: characteristic, type: .withResponse)
記得 .withResponse
可以讓你知道寫入有沒有成功,這樣你就不會對空氣告白 🫠。
背景連線:即使 App 關了,也還能維繫感情?
是的,藍牙支援某種程度的 背景連線。記得在 Info.plist
加入:
<key>UIBackgroundModes</key> <array> <string>bluetooth-central</string> </array>
然後你就可以在 App 進入背景時,仍維持連線(當然不是無限制喔,要省電也要考慮使用者隱私~)。
踩雷提醒
- 藍牙裝置會進入休眠模式,有些手環太久沒人搭理就自斷連,請定期「關心」它。
- 多個裝置共用 UUID,要多加判斷裝置名稱或其他 metadata 避免誤連。
- iOS 有時很愛斷你線,加強錯誤處理是必要的愛情保險。
總結
當你能讀資料、接通知、寫指令,還能在背景偷偷守護她(誤),那你們的感情大概就穩了。但每家藍牙裝置的 Protocol 不一樣,耐心閱讀廠商文件才是真本事。
總之,和藍牙裝置的關係,不是「能連就好」,而是「會溝通才重要」。讓我們一起寫下每一行 code,都帶著一點點浪漫吧 🌙✨
iOS App 客製化 上架。
iOS 軟體開發、修改、維護既有App
IT/程式 > iPhone/iPad/Mac應用程式開發
$ 10000

$ 10000

0 / 1000