共用方式為


藍牙鄰近設定檔

鄰近設定檔會定義兩個角色,以允許裝置偵測其鄰近性。

這兩個角色稱為:

  • 鄰近報告程式
  • 鄰近監視器

此圖說明藍牙鄰近設定檔中鄰近性報告程式和鄰近監視角色之間的關聯性。

鄰近報告程式

鄰近報告程式必須是一般 ATTribute (GATT) 伺服器。

鄰近報告程式支援下列 GATT 服務:

  • 連結遺失服務 (強制)
  • 即時警示服務 (選擇性)
  • Tx Power Service (選擇性)

鄰近監視器

鄰近監視器是 GATT 用戶端。 它應該建立和維護與鄰近報告程式的連線,並監視連線的無線電訊號強度資訊 (或 RSSI) ,以計算訊號的路徑遺失。 如果鄰近報告程式上提供選擇性的 Tx Power Service,它也可以使用這項額外的資訊,藉由從 Tx 電源等級減去 RSSI 來正規化 RSSI 值。

在 Windows 中支援 GATT

當 GATT 裝置與 Windows 配對時,裝置會成為系統的一部分。 Windows 提供 裝置物件 來表示裝置所報告的裝置和主要服務。

Windows.Devices.Bluetooth.GenericAttributeProfile 命名空間描述可在 Windows 中使用的泛型屬性設定檔 API 應用程式開發人員。

開發裝置應用程式時,第一個步驟是識別應用程式所需的藍牙服務,以完成使用者關心的案例。 針對鄰近設定檔,裝置應用程式必須使用連結遺失服務,並選擇性地使用立即警示服務和 Tx Power Service。

裝置應用程式應該使用 Windows.Devices.Enumeration 命名空間 中可用的 API,以判斷與 Windows 配對的任何裝置是否實作連結遺失服務。 具體而言,請使用 DeviceInformation.FindAllAsync 方法。

DeviceInformation.FindAllAsync 方法會採用AQS (進階查詢語法) 裝置選取器做為參數,以便只篩選包含連結遺失服務的裝置。 裝置應用程式開發人員也可以使用GattDeviceService類別的GetDeviceSelectorFromFelectorFelectorFromShortId方法,因此不需要手動建構 AQS 篩選器。

連結遺失服務是由藍牙 SIG 定義的藍牙 GATT 服務,因此可以使用 簡短識別碼 ,而不是 完整的 UUID

為鄰近設定檔服務指派的 簡短識別碼 為:

服務名稱 簡短識別碼
連結遺失 0x1803
立即警示 0x1802
Tx Power 0x1804

藍牙 SIG 會在 指派的數位檔中維護最新的服務清單。

判斷要使用的服務之後,請呼叫 GattDeviceService.FromIdAsync 以取得服務的實例。

取得有效的 GattDeviceService 物件之後,請使用它與 使用 Windows.Devices.Bluetooth.GenericAttributeProfile API 與裝置通訊。

這些 API 可讓您存取特定服務和其物件 (,例如包含的服務、特性和描述元) ,以及讀取和寫入功能。

藍牙一般屬性設定檔 - 活動速率服務範例會示範其中一些技術。

有效率地使用電源

在 Windows 中支援藍牙低能源,對於有效使用電源有強烈焦點。 此焦點包括減少本機藍牙無線電介面卡的耗電量,以及盡可能使用 CPU。

因此,若要建立藍牙 LE 連線,應用程式必須註冊 GattCharacteristic.ValueChanged 事件的處理常式。 或者,應用程式必須呼叫任何 GattCharacteristic.ReadValueAsyncGattCharacteristic.WriteValueAsyncGattCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync 方法,而不需指定 BluetoothCacheMode.Cached 選項。

注意

為了將耗電量降到最低,Windows 不會藉由輪詢本機藍牙無線電控制器來主動監視連結的 RSSI 值。

鄰近 設定檔實作詳細資料會說明電源考慮。