音訊自動切換

由於越來越多人使用多種音訊來源裝置處理日常工作,因此越來越需要以更簡單的方式,管理跨裝置的頭戴式裝置使用方法。音訊自動切換可根據使用者活動 (例如開始電影) 和優先的事件 (例如來電),在裝置之間流暢轉換耳機連線。

使用者體驗原則

  1. 連線切換速度應能根據使用者動作而快速切換。
  2. 連線切換應對使用者開通,讓使用者能在不想要的情況下控制/還原。
  3. 切換應用程式應尊重使用者隱私。

角色

Audio Switch Seeker:搜尋器是一種音訊來源裝置 (例如手機或平板電腦),需要在適用情況下尋找附近的耳機。

音訊切換供應商:提供單位通常是耳機,用於宣傳裝置存在和連線狀態,供搜尋者做出切換決策。

規定總覽

如要進行智慧切換,供應商必須遵循下列規定:

名稱 說明 需求條件 必要?
頁面掃描 在已有連線時,接受其他搜尋器發出的新連線要求。
適用於單一點供應商:
  • 當供應商中斷連線時,原始來源裝置會自動暫停播放音訊。
多點供應商服務:
  • 如果仍有可用連線,就會接受連線要求。
  • 如果連線頻寬已滿,請中斷最近使用的連線 (例如長時間沒有音訊事件),然後接受新的傳入要求。
低延遲頁面掃描模式 (掃描間隔時間不得超過 640 毫秒) 是提升效能的必要條件。
為了在多數情況下 (低耗電模式,掃描間隔時間不得超過 1280 毫秒),為了在電池續航力和切換效能之間權衡取捨。不過,在下列情況下必須使用低延遲模式:
  • 啟動電源前 30 秒
  • 前 30 秒沒有連線或分頁
  • 裝置閒置前 30 秒
必填
連線記錄 如要切換回先前的連線,並繼續播放 (如適用)。
切換回傳統版 API 時,通訊內容將會由 Message Stream API 通訊觸發。
應包含暫停音訊事件並加入記錄中,以便繼續播放 (如適用)。
保留連線記錄並實作 Message Stream API。 必填
連線狀態 搜尋者應進行連線切換判斷,連線狀態包括:
  • 連線狀態
  • 有效連線的音訊類型
  • 有效連線的帳戶資訊
  • 已連結的裝置
在 BLE 通告和訊息串流中加入連線狀態。 必填
執行階段功能變更 只要升級供應商的韌體,就能啟用音訊自動切換功能,這樣一來,搜尋器和供應商的功能就會在執行階段保持同步。 實作 Message Stream API 以存取執行階段功能。 必填
可設定的切換規則 讓尋求者透過使用者偏好設定,設定現有進行中音訊串流和新音訊串流要求的優先順序。
舉例來說,音訊切換搜尋器可能會提供 UI 設定,讓使用者啟用/停用媒體串流和通話之間的自動切換功能。「
」音訊自動切換器使用者可透過 Message Stream 設定並取得切換規則。
僅限多點供應商。
實作 Message Stream API,讓使用者在連接的裝置間切換規則。
選用
主動切換裝置 讓「音訊切換器」功能模擬連線裝置的音訊自動切換功能。
「音訊自動切換器」側邊會顯示使用者介面,方便使用者輕鬆切換已連結的裝置。
僅限多點連線供應商。
為音訊自動切換搜尋器實作 Message Stream API,以便確認連線裝置之間的有效音訊來源。
必填
多點連線切換通知 讓音訊自動切換器顯示切換通知。 僅適用於多點連線供應商。
實作 Message Stream API,以便在多點切換時通知已連線的音訊自動切換器。
必填

廣告酬載

供應商應包含以「快速配對帳戶」資料為基礎建構而成,如「廣告:不找到時」一節所述。

請注意,表 4.2 的版本為 0x1。

連線狀態欄位

八位元 資料類型 說明 必要?
0 uint8 欄位長度並輸入
0bLLLLTTT
  • L = 連線狀態的長度 (以位元組為單位)
  • T = 類型
0bLLLL0101
  • 長度:不固定
  • 類型 = 0b0101
必填
1 uint8 連線狀態
0bHAFRSSSS
  • H = 佩戴時
  • A = 連線可用性
  • F = 聚焦模式
  • R = 已自動重新連線
  • S = 連線狀態
0bHAFRSSSS
必填
2 uint8 自訂資料
目前只有說明目前音訊串流用量的內容類型。並交由提供商人員處理。
這個值會從目前運作中串流的 Seeker 透過訊息串流傳送給供應者。如果目前進行中的串流不是 Seeker 使用者,則為 0。 必填
3 - var 連線裝置的點陣圖
這個點陣圖會顯示目前與供應商連線的裝置。所有折疊裝置都會按順序排列,一長串已繫結的裝置。長度取決於供應商擁有的債權裝置數量。
如果裝置目前已連線至供應商,則對應的位元會設為 1,否則為 0。
詳情請參閱「已連結的裝置點陣圖
選用

表 4.1:連線狀態欄位原始資料

連線標記
  • 0bH = 頭部偵測

    • 1,現在頭部
    • 0,否則未位於頭部,或沒有 OHD 感應器
  • 0bA = 連線可用性

    • 1,有可用的連線
    • 0,否則
  • 0bF = 聚焦模式

    • 1 (在聚焦模式中,不允許進行媒體使用方式的連線,即禁止從 A2DP 切換至 A2DP )
    • 0,否則
  • 0bR = 已自動重新連線

    • 1,如果目前連線是由供應商自動重新連結,表示使用者不會連線該連線 (如果是多點連線,如果現有的連線已自動重新連線,則應設為 1)
    • 0,否則
連線狀態
  • 0x0:沒有連線
  • 0x1:分頁
  • 0x2:已連線,但沒有轉移資料
  • 0x3:非音訊資料傳輸作業 (僅限切換時,使用 0xF 時才能傳輸)
  • 0x4:A2DP 串流,AVRCP 不適用
  • 0x5:以 A2DP 串流和 AVRCP 播放音訊
  • 0x6:HFP (手機/語音服務通話) 串流,包括頻帶和非頻帶鈴聲
  • 0x7:LE 音訊 - 媒體串流 (無控制)
  • 0x8:LE 音訊 - 媒體串流 (含控制項)
  • 0x9:LE Audio - 通話串流
  • 0xA:LE 音訊 - 廣播
  • 0xF:暫時停用連線切換 (例如:韌體更新)
已連結裝置的點陣圖

為避免意外切換連線,Seeker 可能需要知道耳機目前連接的裝置。舉例來說,當耳機連接手機時,如果某位家庭成員在平板電腦上啟動 YouTube,使用者不希望因連線切換而中斷。

請注意,此點陣圖為匿名,因此 Seeker 無法得知哪些其他裝置與供應者建立的關係。舉例來說,假設有 5 部已綁定的裝置:

  • 0:筆記型電腦 (0bx0000000)
  • 1:phoneA (0b0x000000)
  • 2:電話號碼 (0b00x00000)
  • 3:平板電腦 (0b000x0000)
  • 4:電視 (0b0000x000)

如果目前連線的裝置是筆記型電腦和平板電腦,點陣圖的值為 0b10010000。在無法避免的情況下,訂單變更是可以接受的,例如使用者將耳機恢復原廠設定,或導致繫結的裝置數量達到上限。

隨機可解決廣告

為了避免追蹤並尊重使用者隱私,供應商應使用 AES-CTR 透過帳戶金鑰輪替欄位並加密:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

媒介

  1. 金鑰衍生自使用中的帳戶金鑰,詳情請參閱下一節。

    • 金鑰由 HKDF 函式 (IETF RFC 5869) 使用 SHA-256 雜湊函式產生。

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • 供應商應在此使用原始帳戶金鑰,即金鑰的第一個位元組是 0x04,且不包含在使用模式下。

  2. IV (初始向量) 是帳戶金鑰資料的 2 位元組鹽,且邊框間距為 0,即 IV 是 concat(salt,14 位元組)。

  3. 連線狀態原始資料定義於表 4.1 中,如果連線狀態變更,則鹽和 RPA 應於相同的廣告時間範圍重新產生。

這會讓加密的連線狀態欄位隨著帳戶金鑰資料輪替同時輪替。

BLE 廣告的結構如下:

八位元 資料類型 說明 必要?
0 uint8 版本和標記 0x10 必填
1 - t 帳戶金鑰資料 因人而異 必填
t+1 - s 電池資料 因人而異 選用
s+1 - var 隨機可解決資料 因人而異 如果帳戶金鑰清單不是空白,則為必要欄位,
否則請排除。

表 4.2:含有隨機可解析資料的 BLE 廣告

隨機可處理資料包含:

八位元 資料類型 說明 必要?
0 uint8 欄位長度並輸入
0bLLLLTTT
  • L = 加密資料的長度
  • T = 類型
0bLLLL0110
  • 長度:不固定
  • 類型 = 0b0110
必填
1 - var 加密資料 因人而異 必填

表 4.2.1:隨機可解決資料

舉例來說,如果隨機可複製資料包含已加密的連線狀態欄位,解密結果將為 連線狀態欄位

為避免竄改,當廣告中包含隨機可還原資料時,應稍微修改上述帳戶金鑰資料。一般而言,在建立帳戶金鑰篩選器時,值 V 是結合帳戶金鑰篩選器與鹽字串來產生值。不過,同時在傳遞隨機可解析資料時,V 值應以下列方式建構:

 V = concat(account_key, salt, random_resolvable_data)

如果您同時宣傳電池資料和隨機可解決資料,則必須將 V 建立為:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

使用中的帳戶金鑰

連線切換功能是以帳戶為基礎,因此供應商應包含 BLE 廣告中目前連線的帳戶資訊。如果目前連線的裝置是音訊切換搜尋器,提供者應能取得與這個 Seeker 相關聯的帳戶金鑰,並使用這個帳戶金鑰加密連線狀態欄位。如果連接的音訊來源不是音訊開關跳轉工具,提供單位應使用最近使用的帳戶金鑰。

計算帳戶金鑰篩選器之前,供應商應修改帳戶金鑰的第一個位元組,以便加入下列其中一個使用模式:

  1. 0b00000100
    這個帳戶金鑰目前未使用。
    這是預設金鑰 (請參閱「帳戶金鑰」一節)。
  2. 0b00000101
    此帳戶金鑰是最近使用的帳戶金鑰。
    連線狀態欄位已用這個帳戶金鑰加密。目前沒有目前連線狀態的帳戶金鑰資訊,可能表示沒有任何已連線的裝置,或是已連結的裝置不是音訊自動切換介面。
  3. 0b00000110
    這個帳戶金鑰是目前使用的帳戶金鑰。
    連線狀態欄位會以此帳戶金鑰加密,而目前連結的裝置與這個帳戶金鑰相關聯。

音訊切換酬載的結構定義

下圖顯示音訊自動切換酬載的架構。

訊息

連線後,Seeker 和 Provider 可以使用訊息串流來同步處理音訊切換功能、觸發連線切換、設定和取得切換偏好設定、通知連線狀態等等。我們會建立音訊自動切換專用的訊息群組和訊息代碼,如下所示。

訊息群組名稱
音訊自動切換 0 x 7

以下各節將提供每個訊息代碼的其他詳細資料。

訊息代碼名稱 僅限多點連線 寄件者 作答者 加密 MAC 記憶體
使用音訊自動切換功能 0x10 N 兩者皆有 同時透過 0x11 代碼 N N N
通知音訊自動切換的功能 0x11 N 兩者皆有 兩者皆有 N Y 必要
設定多點狀態 0x12 必要 搜尋者 供應商 N Y 必要
設定切換偏好設定 0x20 必要 搜尋者 供應商 N Y 必要
瞭解換機偏好設定 0x21 必要 搜尋者 供應商 (透過代碼 0x22) N N N
通知切換偏好設定 0x22 必要 供應商 搜尋者 N N N
切換使用中的音訊來源(切換到已連結的裝置) 0x30 必要 搜尋者 供應商 N Y 必要
切換回已中斷連線的裝置 0x31 N 搜尋者 供應商 N Y 必要
通知多點切換事件 0x32 必要 供應商 搜尋者 N N N
取得連線狀態 0x33 必要 搜尋者 供應商 (透過代碼 0x34) N N N
通知連線狀態 0x34 必要 供應商 搜尋者 必要 N N
通知音訊自動切換啟動的連線 0x40 N 搜尋者 供應商 N Y 必要
指定使用帳戶金鑰 0x41 N 搜尋者 供應商 N Y 必要
傳送自訂資料 0x42 N 搜尋者 供應商 N Y 必要
設定放置連線目標 0x43 必要 搜尋者 供應商 N Y 必要

表 4.3:音訊自動切換訊息

音訊自動切換訊息的 MAC

為了提供訊息驗證,所有音訊切換訊息以及從 Seeker 傳送至供應商的額外資料都必須提供 訊息驗證碼。當收到包含 MAC 的訊息時,系統應將該訊息「確認」,以便 Seeker 瞭解提供者是否已對訊息做出回應。

如果訊息驗證成功,供應商應針對訊息傳送 ACK:

八位元 資料類型 說明
0 uint8 確認聲明 0 倍
1 uint8 記憶體 0 x 1
2 - 3 則 uint16 其他資料長度 因人而異
4 uint8 音訊自動切換 0 x 7
5 uint8 音訊自動切換訊息代碼 因人而異
6 - 額外資料 因人而異

如果失敗,供應商應傳送 NAK 來傳送訊息:

八位元 資料類型 說明
0 uint8 確認聲明 0 倍
1 uint8 北美 0x02
2 - 3 則 uint16 其他資料長度 0x0003
4 uint8 錯誤原因 因人而異
5 uint8 音訊自動切換 0 x 7
6 uint8 音訊自動切換訊息代碼 因人而異

請注意,如果供應者是傳送者,就不需要使用 MAC。

取得音訊自動切換的功能

音訊自動切換服務供應商和跳轉工具都可以使用以下訊息,檢查已連線的快速配對搜尋器/供應商是否支援音訊自動切換:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 取得音訊自動切換的功能 0x10
2 - 3 則 uint16 其他資料長度 0

表 4.3.1.0:取得音訊自動切換功能

通知音訊自動切換的功能

收到 音訊自動切換訊息碼後,音訊切換工具/供應商將使用下列其中一個標記回應:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 通知音訊自動切換的功能 0x11
2 - 3 則 uint16 其他資料長度 如果此電子郵件是由 Seeker
傳送,則為 20;如果此由供應商傳送
4 - 5 則 uint16 音訊自動切換版本代碼 非零值表示支援音訊自動切換。目前版本 (使用安全性強化功能) 的代碼為 0x0102。
0x0000 或 1 秒內沒有回應,表示這部裝置不支援音訊自動切換功能
6 到 7 年 flag 供應商的音訊自動切換功能標記
如果 Seeker 傳送這個問題,則應忽略這兩個位元組。
varies
請參閱「音訊自動切換功能旗標
8 - 15 歲 訊息 Nonce
只有在 Seeker 傳送這則訊息時,才需要訊息 Nonce
因人而異
16 - 23 則 訊息驗證碼
只有在 Seeker 傳送此驗證碼時才需要
因人而異

表 4.3.1.1:音訊自動切換的通知

音訊自動切換功能旗標
  1. 位元 0 (八位元 6、MSB):音訊自動切換狀態

    • 1,如果音訊自動切換狀態已開啟
    • 0,否則
  2. 位元 1:多點可設定

    • 1,如果裝置支援多點連線,並可切換開啟和關閉
    • 0,否則 (不支援多點或多點連線一律啟用)
  3. 位元 2:多點目前狀態

    • 如果開啟多點連線,則為 1
    • 0,否則
  4. 位元 3:頭部偵測

    • 1,如果這部裝置支援頭戴式偵測功能 (即使目前未關閉偵測)
    • 0,否則
  5. 位元 4:頭部偵測目前狀態

    • 1 (如果已開啟佩戴偵測功能)
    • 0,否則 (不支援頭戴式偵測或抬頭偵測功能)
  6. 所有其他位元都會保留,預設值為 0。

設定多點狀態

在音訊自動切換搜尋器上,我們可能會提供使用者開啟/關閉多點功能的設定。Seeker 會使用以下訊息將多點狀態設為「供應者」:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 設定多點狀態 0x12
2 - 3 則 uint16 其他資料長度 17
4 uint8 多點狀態 0:關閉多點連線
1:開啟多點連線
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.1.2:設定多點狀態

設定切換偏好設定

音訊自動切換搜尋器可透過以下訊息修改多點連線的切換偏好設定,並設為供應器:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 設定切換偏好設定 0x20
2 - 3 則 uint16 其他資料長度 18
4 flag 切換偏好設定 varies
請參閱多點切換偏好設定
5 進階切換設定
保留這個位元組,預設值為 0
因人而異
6 到 13 人 訊息 Nonce 因人而異
14 - 21 則 訊息驗證碼 因人而異

表 4.3.2.0:設定切換偏好設定

多點切換偏好設定標記
  • 位元 0 (MSB):A2DP 與 A2DP (預設為 0)
  • 位元 1:HFP 與 HFP (預設為 0)
  • 位元 2:A2DP 與 HFP (預設為 0)
  • 位元 3:HFP 與 A2DP (預設值 1)
  • 位元 4 - 7:保留
  • 上方顯示的是「新付款資料要求」和「目前使用中的設定檔」
    • 0 表示不切換
    • 1 代表切換

取得切換偏好設定

音訊自動切換搜尋器可以使用以下訊息,從提供者查詢多點的切換偏好設定:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 取得切換設定 0x21
2 - 3 則 uint16 其他資料長度 0

表 4.3.2.1:取得切換偏好設定

通知切換偏好設定

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 通知切換偏好設定 0x22
2 - 3 則 uint16 其他資料長度 2
4 flag 切換偏好設定旗標 varies
請參閱多點切換偏好設定
5 進階切換設定
此為保留位元組,預設值為 0
因人而異

表 4.3.2.2:通知切換偏好設定

切換使用中的音訊來源 (連接到已連結的裝置)

音訊自動切換搜尋器可以要求多點連線提供者透過以下訊息,在連接的裝置之間切換有效音訊來源:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 切換使用中的音訊來源 (連接到已連結的裝置) 0x30
2 - 3 則 uint16 其他資料長度 17
4 flag 切換使用中的音訊來源事件旗標 varies
請參閱「切換使用中的音訊來源事件
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.3.0:切換使用中的音訊來源 (連接裝置)

正在切換使用中的音訊來源事件
  • 位元 0 (MSB):1 個切換至這部裝置,0 個切換至第二個連線的裝置
  • 小畢 1:1 點切換後繼續在切換裝置上播放,否則為 0。繼續播放表示提供者透過 AVRCP 設定檔傳送 PLAY 通知給 Seeker。如果先前狀態 (切換前) 並未播放,供應器應忽略此標記。
  • 位元 2:1 因已轉換的裝置而拒絕 SCO,否則為 0
  • 位元 3:1 原本就在切換裝置時中斷藍牙連線,否則將中斷連線。
  • 位元 4 - 7:保留。

音訊自動切換應用程式的使用者不一定能正確知道其狀態,因此當搜尋器已啟動活動時,供應者可能會收到「切換至這部裝置」訊息。在這種情況下,為了在 Seeker 上顯示正確的 UI,供應商可以傳送 NAK 並顯示錯誤原因 0x4 - 備援裝置動作。

切換回已中斷連線的裝置

如果不必要進行連線切換,使用者可以還原切換。在某些情況下,還原音訊連線是為了盡可能減少干擾。搜尋者將使用以下訊息觸發返回程序:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 切換回已中斷連線的裝置 0x31
2 - 3 則 uint16 其他資料長度 17
4 uint8 切換回事件 varies
0x01:切換回
0x02:切換回並開始播放
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.3.1:切換回舊裝置 (即已中斷連線的裝置)

針對多點連線供應商,如要進行連線切換,提供方可能會中斷與一個音訊來源裝置的連線,並暫停另一個音訊來源上的音訊工作階段。舉例來說,假設多點耳機已連線至平板電腦和第 3 款支援的音訊自動切換裝置。手機接到來電時,使用者正在平板電腦上觀看影片。手機會觸發耳機的連線開關,必須中斷第 3 部裝置的連線,才能連線到手機,並同時暫停平板電腦的媒體工作階段,以便取得手機鈴聲。如果使用者拒絕通話,手機可能會要求耳機「切換回並繼續播放」。收到這項要求後,耳機必須重新連線至第 3 部裝置,然後在平板電腦上繼續播放已暫停的影片。

傳送多點切換事件通知

為了讓使用者瞭解發生多點切換事件,音訊切換搜尋器可能會向使用者顯示通知。供應商應通知已連線的音訊切換要求者瞭解切換事件。

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 通知多點切換事件
供應商應在每次開關時傳送此事件,包括對非音訊自動切換的廣告客戶、非音訊自動切換跳動器和音訊自動切換提問者
0x32
2 - 3 則 uint16 其他資料長度 因人而異
4 uint8 切換原因 varies
0x00:未指定
0x01:A2DP 串流
0x02:HFP
5 uint8 目標裝置 varies
0x01:這部裝置
0x02:其他已連結的裝置
6 - n utf8 目標裝置名稱:
如果目標裝置為 Audio Switch Seeker,請使用「搜尋者」傳送的名稱,如果沒有的話,請使用裝置位址的最後 2 個位元組使用 BT 名稱 (如適用)
因人而異

表 4.3.3.2:通知多點切換事件

取得連線狀態

並且可向供應商取得目前的連線狀態:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 取得連線狀態 0x33
2 - 3 則 uint16 其他資料長度 0

表 4.3.3.3:取得連線狀態

收到這則訊息後,提供方應在訊息代碼 0x34 中回應, 通知連線狀態

通知連線狀態

如 BLE 廣告酬載所定義,如果多點供應商的連線狀態發生變更,除了變更廣告封包以外,供應者也應通知使用相同帳戶金鑰的網路存取要求。如果供應器已連線至 Audio Switch Seeker 以及非音訊自動切換搜尋器,如果非音訊切換搜尋器已啟用,提供者應一併透過「探員」帳戶金鑰,向已連線的 Audio Switch 搜尋器發出連線狀態通知。

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 通知連線狀態 0x34
2 - 3 則 uint16 其他資料長度 因人而異
4 uint8 使用中的裝置標記 varies
0x00:這名使用者是被動式,而使用中的裝置則是使用同一個帳戶金鑰
0x01:這位要求者是使用中的裝置
0x02:這個搜尋器為被動式搜尋器,且使用中的裝置並非音訊自動切換器。
5 - n 鍵 加密連線狀態 因人而異
n+1 - n+8 訊息 Nonce 因人而異

表 4.3.3.4:通知連線狀態

加密連線狀態訊息

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

其中:

通知音訊自動切換啟動的連線

音訊自動切換提供者可能必須知道連線切換是由音訊自動切換所觸發,其中包含不同的回應,例如針對音訊自動切換事件停用耳環。Seeker 會傳送訊息,通知供應商這個連線是音訊自動切換啟動的連線。

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 通知音訊自動切換啟動的連線 0x40
2 - 3 則 uint16 其他資料長度 17
4 uint8 音訊自動切換啟動的連線指示 varies
0:這個連線未由音訊自動切換功能觸發
1:這是音訊自動切換啟動的連線
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.4.0:通知音訊自動切換啟動的連線

指明使用帳戶金鑰

如果 Seeker 上的多個帳戶金鑰 (例如多位使用者) 與供應器相關聯,Seeker 將使用以下訊息來指出目前使用的帳戶金鑰。

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 指明使用帳戶金鑰 0x41
2 - 3 則 uint16 其他資料長度 22
4 到 9 人 utf8 使用中的字串 UTF8 (「使用中」)
10 - 17 則 訊息 Nonce 因人而異
18 - 25 歲 訊息驗證碼 因人而異

表 4.3.4.1:指出「使用中帳戶金鑰」

收到這則訊息後,供應商會驗證訊息驗證碼,藉此知道使用中的帳戶金鑰。

傳送自訂資料

有效的音訊切換要求器可將音訊串流的資訊 (例如音訊用量) 封裝在自訂資料位元組中,然後使用以下訊息傳送給供應器:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 傳送自訂資料 0x42
2 - 3 則 uint16 其他資料長度 17
4 uint8 自訂資料 因人而異
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.4.2:傳送自訂資料

收到自訂資料後,供應商會更新廣告封包以納入自訂資料。如果是多點供應商,則應該用相同帳戶金鑰,通知另一個已連線的查詢工具連線狀態變更。

設定放置連線目標

在多點耳機上,如果偏好捨棄的連線並非最近使用過的連線,音訊切換搜尋器可以使用以下訊息告知供應商要捨棄的裝置:

八位元 資料類型 說明
0 uint8 音訊自動切換 0 x 7
1 uint8 設定放置連線目標 0x43
2 - 3 則 uint16 其他資料長度 17
4 uint8 目標要捨棄的連線裝置 varies
1:這部裝置
5 - 12 則 訊息 Nonce 因人而異
13 - 20 則 訊息驗證碼 因人而異

表 4.3.4.3:設定放置連線目標

參考實作

如需參考實作,請參閱 鄰近分享 SDK 程式庫