<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BLE on Joe's Blog</title><link>https://shinrenpan.github.io/tags/ble/</link><description>Recent content in BLE on Joe's Blog</description><generator>Hugo</generator><language>zh-tw</language><copyright>© Shinren Pan. All rights reserved.</copyright><lastBuildDate>Sat, 13 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://shinrenpan.github.io/tags/ble/index.xml" rel="self" type="application/rss+xml"/><item><title>硬體推播至 iPhone</title><link>https://shinrenpan.github.io/2020-03-04/</link><pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate><guid>https://shinrenpan.github.io/2020-03-04/</guid><description>&lt;p&gt;如果你在網路上搜尋「讓硬體裝置接收 iPhone 通知」，大概會找不到什麼有用的結果。這個需求聽起來直覺，實作起來卻很冷門——大多數人根本不知道這個功能叫什麼。&lt;/p&gt;
&lt;p&gt;關鍵字是 &lt;strong&gt;ANCS&lt;/strong&gt;：Apple Notification Center Service。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ancs-是什麼"&gt;ANCS 是什麼&lt;/h2&gt;
&lt;p&gt;ANCS 是 Apple 定義的一套 BLE（Bluetooth Low Energy）GATT 協定，讓藍牙配件可以接收 iPhone 上的通知。&lt;/p&gt;
&lt;p&gt;角色分兩種：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Notification Provider（NP）&lt;/strong&gt;：iPhone，扮演 GATT Server，負責發送通知&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notification Consumer（NC）&lt;/strong&gt;：硬體配件，扮演 GATT Client，負責接收通知&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ANCS 公開三個 GATT Characteristic：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Characteristic&lt;/th&gt;
 &lt;th&gt;方向&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Notification Source&lt;/td&gt;
 &lt;td&gt;NP → NC&lt;/td&gt;
 &lt;td&gt;推送通知事件（新增、修改、刪除）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Control Point&lt;/td&gt;
 &lt;td&gt;NC → NP&lt;/td&gt;
 &lt;td&gt;請求通知的詳細資料&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data Source&lt;/td&gt;
 &lt;td&gt;NP → NC&lt;/td&gt;
 &lt;td&gt;回傳通知詳細內容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;流程大致是：iPhone 有新通知 → 透過 Notification Source 推給配件 → 配件透過 Control Point 要求詳細內容 → iPhone 透過 Data Source 回傳 app 名稱、標題、內文等資訊。&lt;/p&gt;</description></item></channel></rss>