Joe's Blog

iOS 開發筆記

硬體推播至 iPhone

發佈於 2020-03-04
2026-06-13 更新

如果你在網路上搜尋「讓硬體裝置接收 iPhone 通知」,大概會找不到什麼有用的結果。這個需求聽起來直覺,實作起來卻很冷門——大多數人根本不知道這個功能叫什麼。

關鍵字是 ANCS:Apple Notification Center Service。


ANCS 是什麼

ANCS 是 Apple 定義的一套 BLE(Bluetooth Low Energy)GATT 協定,讓藍牙配件可以接收 iPhone 上的通知。

角色分兩種:

ANCS 公開三個 GATT Characteristic:

Characteristic方向用途
Notification SourceNP → NC推送通知事件(新增、修改、刪除)
Control PointNC → NP請求通知的詳細資料
Data SourceNP → 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 的差異

ANCSAccessoryNotifications
出現時間iOS 7iOS 26.3
傳輸方式BLE GATT由 framework 管理
設定入口自動(BLE pairing 後)使用者手動在設定中選擇
通知內容基本 metadata完整 app 名稱 + 通知內文
同時連接數可多個只能一個(與 Apple Watch 互斥)
適用範圍全球目前僅限歐盟

官方文件:AccessoryNotifications — Apple Developer Documentation


ANCS 在 2020 年是唯一的做法,到了 2026 年多了 AccessoryNotifications 這條路。如果你是在歐盟的硬體開發者,新框架能拿到更豐富的通知內容;如果是全球市場,目前還是靠 ANCS。


本文使用 Claude 共同完成