硬體推播至 iPhone
如果你在網路上搜尋「讓硬體裝置接收 iPhone 通知」,大概會找不到什麼有用的結果。這個需求聽起來直覺,實作起來卻很冷門——大多數人根本不知道這個功能叫什麼。
關鍵字是 ANCS:Apple Notification Center Service。
ANCS 是什麼
ANCS 是 Apple 定義的一套 BLE(Bluetooth Low Energy)GATT 協定,讓藍牙配件可以接收 iPhone 上的通知。
角色分兩種:
- Notification Provider(NP):iPhone,扮演 GATT Server,負責發送通知
- Notification Consumer(NC):硬體配件,扮演 GATT Client,負責接收通知
ANCS 公開三個 GATT Characteristic:
| Characteristic | 方向 | 用途 |
|---|---|---|
| Notification Source | NP → NC | 推送通知事件(新增、修改、刪除) |
| Control Point | NC → NP | 請求通知的詳細資料 |
| Data Source | NP → NC | 回傳通知詳細內容 |
流程大致是:iPhone 有新通知 → 透過 Notification Source 推給配件 → 配件透過 Control Point 要求詳細內容 → iPhone 透過 Data Source 回傳 app 名稱、標題、內文等資訊。
整個協定跑在 BLE 上,配件端需要先與 iPhone 完成 BLE pairing,才能訂閱 ANCS 的 Notification Source。
硬體端怎麼實作
ANCS 的實作責任在硬體 firmware 這側,iOS 端不需要做任何事,協定本身 iOS 7 起就內建了。
主流的藍牙晶片廠商都有提供參考實作:
如果你只是 iOS 開發者,不需要動任何程式碼,ANCS 是硬體廠商的事。你需要知道的是這個協定的存在,以及告訴硬體廠商去查這份 spec。
官方 Spec:Apple Notification Center Service Specification
iOS 26.3 之後的新做法
2026 年,因應歐盟 DMA(數位市場法),Apple 在 iOS 26.3 引入了全新的 AccessoryNotifications framework,讓第三方裝置可以透過官方管道接收 iPhone 通知,不再只靠 BLE ANCS 協定。
使用者端的入口在:設定 > 通知 > 選擇第三方裝置,並且可以逐一設定哪些 app 的通知要轉發,跟 Apple Watch 的通知設定邏輯一樣。
跟 ANCS 的差異
| ANCS | AccessoryNotifications | |
|---|---|---|
| 出現時間 | iOS 7 | iOS 26.3 |
| 傳輸方式 | BLE GATT | 由 framework 管理 |
| 設定入口 | 自動(BLE pairing 後) | 使用者手動在設定中選擇 |
| 通知內容 | 基本 metadata | 完整 app 名稱 + 通知內文 |
| 同時連接數 | 可多個 | 只能一個(與 Apple Watch 互斥) |
| 適用範圍 | 全球 | 目前僅限歐盟 |
官方文件:AccessoryNotifications — Apple Developer Documentation
ANCS 在 2020 年是唯一的做法,到了 2026 年多了 AccessoryNotifications 這條路。如果你是在歐盟的硬體開發者,新框架能拿到更豐富的通知內容;如果是全球市場,目前還是靠 ANCS。
本文使用 Claude 共同完成