通訊協定
存取權
定義於 fuchsia.bluetooth.sys/access.fidl
抽象藍牙一般存取設定檔中定義的作業模式和程序的通訊協定 (請參閱「核心規格 v5.1」、「Vo 3」、「Part C」)。
此通訊協定下程序適用於整個系統。在這些程序中扮演有效角色的藍牙控制器可以使用 HostWatcher 通訊協定管理。
當基礎管道關閉時,存取權通訊協定執行個體發起的程序將會終止。
連線
啟動與指定的 id
的對等點連線。這個方法會連結 BR/EDR 和 LE 傳輸,視對等點已知支援的技術而定。
- 要求
id
。要連線的對等點 ID。
- 如果無法啟動與對等點的連線,請回報
Error.FAILED
。 - 如果無法辨識
id
,則回報Error.PEER_NOT_FOUND
。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
回應
名稱 | 類型 |
---|---|
payload |
Access_Connect_Result
|
中斷連線
將所有邏輯連結連結到指定 id
的對等點。這包括使用所有 Access 和 fuchsia.bluetooth.le 通訊協定執行個體啟動的 LE 和 BR/EDR 連結。
- 要求
id
要中斷連線的對等點 ID。
- 如果無法辨識
id
,則回報Error.PEER_NOT_FOUND
。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
回應
名稱 | 類型 |
---|---|
payload |
Access_Disconnect_Result
|
清除
移除所有連結資訊,並將現有連結與指定 id
的對等點取消連結。
- 要求
id
。要忘記的對等點 ID。
- 如果無法辨識
id
,則回報Error.PEER_NOT_FOUND
。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
回應
名稱 | 類型 |
---|---|
payload |
Access_Forget_Result
|
MakeDiscoverable
在 BR/EDR 傳輸上,讓系統進入「一般可探索」模式。主動式主機會回應一般查詢 (定期進入查詢掃描模式)。
- 要求
token
fuchsia.bluetooth.sys/ProcedureToken,在可探索模式工作階段執行期間仍然有效。注意:在所有 fuchsia.bluetooth.sys/Access 用戶端都捨棄其權杖之前,系統可能仍會處於可偵測的狀態。
- 錯誤回報錯誤。無法輸入查詢模式時,發生錯誤。
要求
名稱 | 類型 |
---|---|
token |
server_end<ProcedureToken>
|
回應
名稱 | 類型 |
---|---|
payload |
Access_MakeDiscoverable_Result
|
配對
啟動與指定 options
的遠端 id
配對。
配對程序完成後或取消,這項呼叫才會完成。如果沒有找到與 id
的連線對等點,或配對程序失敗,則會傳回錯誤。如果已命名的對等點已配對,則系統會立即傳回成功值,除非配對超過 LE,且 PairingOptions.le_security_level 的安全性高於目前的安全等級,此時我們會嘗試將安全性提高至所要求的層級。
配對將優先採用 options.transport
指出的傳輸設定。如果目前未連線該傳輸,配對作業就會失敗與 Error.PEER_NOT_FOUND
。目前,如果系統要求 DUAL_MODE,我們會嘗試透過 LE 傳輸進行配對。
- 要求
id
。要用來啟動配對的對等點 ID - 要求
options
此配對要求所使用的設定選項
- 如果無法辨識
id
,或在要求的傳輸上未連線對等互連,則錯誤回報Error.PEER_NOT_FOUND
。 - 如果傳送的格式錯誤選項,則錯誤回報
Error.INVALID_ARGUMENTS
- 配對期間發生錯誤時,錯誤回報
Error.FAILED
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
options |
PairingOptions
|
回應
名稱 | 類型 |
---|---|
payload |
Access_Pair_Result
|
SetDeviceClass
設定本機裝置類別,讓系統在系統處於可偵測模式時,向附近的同業顯示該類別。
- 要求
device_class
。要指派給系統的裝置類別。
要求
名稱 | 類型 |
---|---|
device_class |
fuchsia.bluetooth/DeviceClass
|
SetLocalName
為藍牙系統指定本機名稱。當系統處於可探索模式及命名程序期間,附近對等使用者就會看到這個名稱。
- 要求
name
要指派給系統的完整本機名稱。
要求
名稱 | 類型 |
---|---|
name |
fuchsia.bluetooth/DeviceName
|
SetPairingDelegate
指派 PairingDelegate 以回應雲端硬碟配對程序。委派代表會設定為使用所提供的 I/O 功能判斷配對方法。
一次只能註冊一個 PairingDelegate。如果關閉 PairingDelegate,系統會取消所有與委派代表相關的進行中配對程序,並關閉先前指派給此存取權執行個體的 PairingDelegate。
- 要求
input
藍牙輸入能力 - 要求
output
藍牙輸出能力 - 要求
delegate
用戶端已完成 PairingDelegate 管道。
淘汰 - 這個方法已納入 fuchsia.bluetooth.sys/Pairing 通訊協定中。末日光明
https://fxbug.dev/42180744 進一步瞭解遷移作業。
要求
名稱 | 類型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate
|
StartDiscovery
啟動一般探索程序。所有一般可偵測的 BR/EDR、LE 和 BR/EDR/LE 裝置都會顯示在同類群組清單中,您可以透過呼叫 fuchsia.bluetooth.sys/Access.WatchPeers 查看。
- 要求
token
fuchsia.bluetooth.sys/ProcedureToken 在探索過程中仍然有效。注意:無線電會持續探索,直到所有 fuchsia.bluetooth.sys/Access 都放置其符記。
- 錯誤回報錯誤。如果無法啟動任何傳輸的探索作業,則錯誤回報。
要求
名稱 | 類型 |
---|---|
token |
server_end<ProcedureToken>
|
回應
名稱 | 類型 |
---|---|
payload |
Access_StartDiscovery_Result
|
WatchPeers
傳回系統已知的所有對等裝置 (可連線的藍牙裝置) 清單。第一次呼叫會產生快照,將所有已知對等端的快照立即傳送至 updated
回傳量計。只有在最近一次呼叫後回報的項目中新增、修改或移除項目時,後續呼叫才會收到回應。
- 回應
updated
自上次呼叫 WatchPeers() 後新增或更新的同類應用程式。 - 回應
removed
自上次呼叫 WatchPeers() 後遭移除的對等 ID。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
updated |
vector<Peer>
|
removed |
vector<fuchsia.bluetooth/PeerId>
|
啟動
定義於 fuchsia.bluetooth.sys/bootstrap.fidl
用於初始化永久核心藍牙資料的通訊協定。此通訊協定會填入可判斷這部裝置身分的資料,讓這些資料判斷其他藍牙裝置的辨識結果。
這個通訊協定只能在核心藍牙主機子系統產生其身分之前取得。修訂初始資料後,這項能力就會無法使用,即使已連接新的藍牙轉接器,也無法使用此功能。
基於涉及隱私和連接密鑰的功能,以及讓這部裝置使用其他裝置的藍牙身分的能力,這個通訊協定只應暴露可保證資料來源的特定特殊權限元件。
AddIdentities
將 ID 新增至未填入的藍牙堆疊。
重複呼叫會附加身分。
要求
名稱 | 類型 |
---|---|
identities |
vector<Identity>
|
提交
將所有新增的啟動資料寫入藍牙核心堆疊。無論是否成功,伺服器都會關閉管道。如果成功傳回且不含錯誤,即使未寫入啟動資料,系統仍會將堆疊初始化。如果任何主機或繫結的對等點資料不足或不一致,會傳回 INVALID_HOST_IDENTITY (用戶端可能會取得其他通訊協定控制代碼來重試)。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
payload |
Bootstrap_Commit_Result
|
設定
定義於 fuchsia.bluetooth.sys/configuration.fidl
為核心藍牙系統設定參數和功能的通訊協定。這些設定會套用至系統已知的所有 bt-host 驅動程式。
這個通訊協定只應向高權限元件公開,例如測試/評估環境中的藍牙開發人員工具。
更新
將 settings
中顯示的欄位套用至系統已知的所有 bt-host 驅動程式。settings
中沒有的欄位將維持不變。
- 要求
settings
提供使用中的 bt-host 驅動程式的新設定;只需要有修改過的設定。
- 回應
result
套用新設定後,填入完整資料的資料表,其中包含新設定的結果。
要求
名稱 | 類型 |
---|---|
settings |
Settings
|
回應
名稱 | 類型 |
---|---|
result |
Settings
|
HostWatcher
定義於 fuchsia.bluetooth.sys/host_watcher.fidl
觀察及管理系統上藍牙控制器的通訊協定。
SetActive
將具有指定的 id
的主機指定為啟用中。所有藍牙程序都會轉送到這個主機。系統會停用先前指派的任何執行中的主機,並終止所有待處理的程序。
- 如果系統找不到包含
id
的主機,就會失敗。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/HostId
|
回應
名稱 | 類型 |
---|---|
payload |
HostWatcher_SetActive_Result
|
觀看
取得所有可用的藍牙控制器及其狀態的清單。只有在此清單自上次傳送此訊息後有變更時,系統才會傳送回應。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
hosts |
vector<HostInfo>
|
配對中
定義於 fuchsia.bluetooth.sys/pairing.fidl
允許系統用戶端啟用藍牙配對。
SetDelegate
指派 PairingDelegate2 來處理配對程序。提供的 I/O 功能會用來判斷使用的方法。
在整個系統期間,只能設定一個 PairingDelegate 或 PairingDelegate2。如果在設定另一個委派項目時呼叫這個方法,新的委派作業會立即關閉。
關閉 PairingDelegate2 會取消配對委派設定。進行中的 PairingRequests 仍可完成,但新的要求會視為未設定委派項目。
如未設定委派項目,則所有配對都會遭到拒絕,即使對等連線是由本機裝置啟動也一樣。
- 要求
input
藍牙輸入能力,請參閱InputCapability
- 要求
output
藍牙輸出能力,請參閱OutputCapability
- 要求
delegate
PairingDelegate2 將接收配對要求
要求
名稱 | 類型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate2
|
SetPairingDelegate
指派 PairingDelegate 以回應配對程序。所提供的 I/O 功能會用來判斷使用的配對方法。
在整個系統期間,只能設定一個 PairingDelegate - 如果設定了另一個委派代表,這時系統會立即關閉新的委派代表。在 PairingDelegate 設定後關閉,系統會取消所有進行中的配對程序,而不會接受及取消委派委派代表。
如果未設定 PairingDelegate,即使本機裝置已啟動對等互連連線,所有配對都會遭到拒絕。
- 要求
input
藍牙輸入能力,請參閱InputCapability
- 要求
output
藍牙輸出能力,請參閱OutputCapability
- 要求
delegate
PairingDelegate,以便接收配對要求
要求
名稱 | 類型 |
---|---|
input |
InputCapability
|
output |
OutputCapability
|
delegate |
PairingDelegate
|
PairingDelegate
定義於 fuchsia.bluetooth.sys/pairing.fidl
藍牙配對委派代表負責確認或拒絕接收來自於連線或正在連線到本機裝置的藍牙對等端發出的配對要求。
任何新的配對都會導致 PairingDelegate.OnPairingRequest
呼叫,包括將 InputCapability 和 OutputCapability 設為 none 的配對。委派代表需要有足夠的背景資訊,判斷要接受還是拒絕配對。
每個系統一次只能設定一個委派代表。如要瞭解如何設定配對委派,請參閱 fuchsia.bluetooth.sys.Pairing
。
OnLocalKeypress
委派代表可以使用 PairingMethod.PASSKEY_ENTRY
在配對期間傳送此事件,通知本機按鍵的對等點。
傳送本機按鍵事件,可讓使用者在輸入密碼金鑰時有更多時間配對。
此指令應僅在使用 PASSKEY_ENTRY 方法接收到 OnPairingRequest 後,及該配對要求的代表之前傳送。
- 要求
id
ID 屬於有效的配對要求的對等裝置 ID - 要求
keypress
應該傳送的通知類型
回應
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
keypress |
PairingKeypress
|
OnPairingComplete
對等點的配對程序完成後會呼叫此方法。這可能是因為作業順利完成,或是發生錯誤 (例如因對等點取消、逾時或連線中斷)。
- 要求
id
。配對的對等點藍牙對等點 ID。 - 如果配對成功,就會要求
success
為 true,否則傳回 false。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
success |
bool
|
OnPairingRequest
會呼叫 ,確認配對。如果 accept
回應為 true,否則系統會繼續進行配對程序。如果使用配對方法需要密碼金鑰,就必須一併提供密碼金鑰。不需要密碼金鑰的配對方法會忽略 entered_passkey
回應。
配對作業可能會在收到回應前失敗 (通常是逾時或對等點中斷連線)。發生這種情況時,系統會呼叫 OnPairingComplete 方法。系統會忽略此案件傳送的任何回應。
- 要求取得配對的對等點
peer
資訊 - 要求啟用配對的
method
方法。查看PairingMethod
- 如果使用 PASSKEY_DISPLAY 或 PASSKEY_COMPARISON,則要求
displayed_passkey
要向使用者顯示的密碼金鑰。反之亦然。
- 如果接受配對,則回應
accept
true - 使用者輸入的回應
entered_passkey
密碼金鑰。除非方法為 PASSKEY_ENTRY,否則會遭到忽略。
要求
名稱 | 類型 |
---|---|
peer |
Peer
|
method |
PairingMethod
|
displayed_passkey |
uint32
|
回應
名稱 | 類型 |
---|---|
accept |
bool
|
entered_passkey |
uint32
|
OnRemoteKeypress
呼叫此方法,使用 PairingMethod.PASSKEY_DISPLAY
在配對期間通知對等裝置的按鍵事件。
這個事件可在使用者於對等裝置上輸入密碼金鑰時,提供按鍵事件事件給委派代表,以提供回應式使用者體驗。每次按下按鍵都會呼叫這個事件。
只有在為 id
傳送 OnPairingRequest 到傳送 OnPairingComplete 之間,系統才會呼叫此事件。
注意:許多裝置不會傳送這些事件
- 要求
id
傳送 keypress 事件的對等點 ID。 - 要求
keypress
接收的事件類型。
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
keypress |
PairingKeypress
|
PairingDelegate2
定義於 fuchsia.bluetooth.sys/pairing.fidl
藍牙配對委派代表負責確認或拒絕接收來自於連線或正在連線到本機裝置的藍牙對等端發出的配對要求。
任何新的配對都會導致 PairingDelegate.StartRequest
呼叫,包括將 InputCapability 和 OutputCapability 設為 none 的配對。委派代表需要有足夠的背景資訊,才能判斷是否要接受或拒絕配對。
每個系統一次只能設定一個委派代表。如要瞭解如何設定配對委派,請參閱 fuchsia.bluetooth.sys.Pairing
。
RequestComplete
對等點的配對程序完成後會呼叫此方法。這可能是因為成功完成或發生錯誤 (例如因對等點取消、逾時或中斷連線)。
- 要求
id
。配對的對等點藍牙對等點 ID - 如果配對成功,就會要求
success
為 true,否則傳回 false
要求
名稱 | 類型 |
---|---|
id |
fuchsia.bluetooth/PeerId
|
success |
bool
|
StartRequest
開始與 peer
配對時呼叫。配對程序會使用 PairingRequest 通訊協定繼續進行。
配對的屬性會在 info
中提供,以指出本機要建立哪種互動類型。
系統一次可以為不同的對等互連項目啟用多項要求,而且要求的效力可能會超過這個通訊協定。如果您捨棄要求通訊協定,系統就會自動拒絕配對。
所有欄位都會持續顯示。
要求
名稱 | 類型 |
---|---|
payload |
PairingDelegate2StartRequestRequest
|
PairingRequest
定義於 fuchsia.bluetooth.sys/pairing.fidl
這個通訊協定會在進行配對時啟用,並透過 PairingDelegate.StartRequest
提供給 PairingDelegate。
如果配對程序提早完成且未成功,伺服器會以 Epitaph 關閉這個通訊協定:
- ZX_ERR_UNAVAILABLE - 藍牙對等互連已中斷連線
- ZX_ERR_NOT_SUPPORTED - 未預期提供密碼金鑰
- ZX_ERR_BAD_STATE - 在未使用 PairingProperties.passkey_entry 時傳送按鍵按下
- ZX_ERR_TIMED_OUT - 未偵測到活動,且配對已停止
接受
接受配對要求。 如果使用 PairingProperties.passkey_entry 方法,就必須提供 entered_passkey,否則會忽略此要求。
要求
名稱 | 類型 |
---|---|
payload |
PairingRequestAcceptRequest
|
按鍵
用於通訊本機按鍵,以更新配對進度的遠端對等點。此方法的回應應用於流量控制。
要求
名稱 | 類型 |
---|---|
keypress |
PairingKeypress
|
回應
<EMPTY>
OnComplete
配對完成後傳送一次,緊接在通訊協定關閉前傳送。成功值和 PeerId 也會使用 PairingDelegate.RequestComplete
呼叫傳送至委派代表。
回應
名稱 | 類型 |
---|---|
success |
bool
|
OnKeypress
配對方法為 passwordskey_display 時傳送。可用於更新 UI,用於表示按鍵接收。
回應
名稱 | 類型 |
---|---|
keypress |
PairingKeypress
|
拒絕
拒絕配對要求。關閉這項通訊協定也會拒絕配對要求。
要求
<EMPTY>
ProcedureToken
定義於 fuchsia.bluetooth.sys/access.fidl
代表啟用中的程序。支援這個通訊協定的控制代碼有效性取決於其附加的程序活動。具體來說:
- 關閉權杖處理常式,即代表附加程序停止。
- 系統會關閉符記控制代碼,說明程序已在內部終止。
結構化
Access_Connect_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Access_Disconnect_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Access_Forget_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Access_MakeDiscoverable_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Access_Pair_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Access_StartDiscovery_Response
定義於 fuchsia.bluetooth.sys/access.fidl
<EMPTY>
Bootstrap_Commit_Response
定義於 fuchsia.bluetooth.sys/bootstrap.fidl
<EMPTY>
同意
定義於 fuchsia.bluetooth.sys/pairing.fidl
<EMPTY>
HostWatcher_SetActive_Response
定義於 fuchsia.bluetooth.sys/host_watcher.fidl
<EMPTY>
鍵
定義於 fuchsia.bluetooth.sys/identity.fidl
代表 128 位元密鑰。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
uint8[16]
|
無預設 |
LeConnectionParameters
定義於 fuchsia.bluetooth.sys/identity.fidl
對等點偏好使用的 LE 連線參數。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
connection_interval |
uint16
|
無預設 | |
connection_latency |
uint16
|
無預設 | |
supervision_timeout |
uint16
|
無預設 |
Ltk
定義於 fuchsia.bluetooth.sys/identity.fidl
代表用於連結加密的 LE 長期對等金鑰。如果使用 LE Secure Connections 配對進行分散式,則 ediv
和 rand
欄位會是 0。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
key |
PeerKey
|
無預設 | |
ediv |
uint16
|
無預設 | |
rand |
uint64
|
無預設 |
PasskeyEntry
定義於 fuchsia.bluetooth.sys/pairing.fidl
<EMPTY>
PeerKey
定義於 fuchsia.bluetooth.sys/identity.fidl
代表從對等點收到的金鑰。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
security |
SecurityProperties
|
此金鑰接收這個連結的安全屬性。 |
無預設 |
data |
Key
|
金鑰內容。 |
無預設 |
SecurityProperties
定義於 fuchsia.bluetooth.sys/identity.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
authenticated |
bool
|
無預設 | |
secure_connections |
bool
|
無預設 | |
encryption_key_size |
uint8
|
無預設 |
ENUMS
BondableMode 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing_options.fidl
在配對程序期間,裝置是否應形成藍牙連結。 如「核心規格 v5.2 版 | 第 3 版」、「第 C 部分」、「第 4.3 版」所述
名稱 | 值 | 說明 |
---|---|---|
可攜帶 |
1 |
在與同類裝置配對時,裝置會形成連結 |
NON_BONDABLE |
2 |
在與同類裝置配對時,裝置不會形成連結 |
BootstrapError 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/bootstrap.fidl
名稱 | 值 | 說明 |
---|---|---|
INVALID_HOST_IDENTITY |
1 |
|
WRITE_FAILURE |
2 |
BrEdrSecurityMode 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/security_mode.fidl
BT 裝置的 BR/EDR 安全模式會決定裝置可能的安全性屬性。這個模式不會對裝置連線的現有安全屬性做出具體保證,而是對允許的安全屬性設定限制。詳情請參閱核心規格 v5.4 Vol. 3、第 C 5.2.2 部分。
名稱 | 值 | 說明 |
---|---|---|
MODE_4 |
1 |
在 BR/EDR 安全模式 4 中,系統會使用配對裝置間最低的分母演算法來驗證和加密通訊。請注意,這表示如果不支援 SC,金鑰產生、驗證和加密演算法的強度可能低於安全連線。 |
SECURE_CONNECTIONS_ONLY |
2 |
在「僅限安全連線」模式中,裝置會拒絕不支援安全連線的連線,並強制執行金鑰長度較長的憑證。 僅限 SC 模式也會嘗試強制使用者確認預期的對等互連。因此,沒有螢幕的裝置 (例如耳機) 通常不會支援 SC 的原因。 |
錯誤:strict
類型:uint32
定義於 fuchsia.bluetooth.sys/access.fidl
名稱 | 值 | 說明 |
---|---|---|
失敗 |
1 |
無法執行作業。 |
PEER_NOT_FOUND |
2 |
找不到為作業指定的對等點。 |
TIMED_OUT |
3 |
作業時間限制已到期。 |
已取消 |
4 |
操作已取消。 |
IN_PROGRESS |
5 |
作業已在進行中。 |
NOT_SUPPORTED |
6 |
不支援這項作業。 |
INVALID_ARGUMENTS |
7 |
作業指定的引數集無效。 |
輸入功能嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing.fidl
配對交換庫的輸入功能。應根據本機系統輸入配對要求回應的能力進行設定。詳情請參閱第 3 卷、第 C 部分、表 5.3 部分。
名稱 | 值 | 說明 |
---|---|---|
無 |
1 |
使用者沒有可用輸入方式來回應配對要求「是」或「否」。注意:啟用這項設定後,系統會將大多數的配對視為未經驗證,且容易受到中間機器攻擊。 |
確認 |
2 |
使用者可以回應「是」或「否」要求。 |
鍵盤 |
3 |
使用者擁有鍵盤 (或其他 UI) 可以輸入數字代碼,並傳送已完成或取消的訊號。 |
LeSecurityMode 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/security_mode.fidl
BLE 裝置的 LE 安全模式會決定裝置可能的安全屬性。 這個模式不會對裝置連線的現有安全性屬性做出具體保證,而是針對允許的安全性屬性設定限制。詳情請參閱核心規格 v5.2 Vol. 3,第 C 10.2 部分。
名稱 | 值 | 說明 |
---|---|---|
MODE_1 |
1 |
在 LE 安全模式 1 中,通訊會經過加密保護,而 BLE 型服務可能會對加密金鑰指定不同的驗證要求、金鑰大小或安全連線保護要求。 |
SECURE_CONNECTIONS_ONLY |
2 |
在「僅限安全連線」模式中,所有安全通訊都必須使用 128 位元、經過驗證和 LE Secure 連線產生的加密金鑰。如果裝置因系統限製而無法滿足這些加密金鑰屬性,則任何與這類裝置有關的連線都將完全無法保護連結。這個模式不會防止未加密的通訊,只會對所有加密通訊強制執行更嚴格的政策。 |
OutputCapability 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing.fidl
配對掃描的輸出功能。您應根據本機系統向使用者顯示資訊 (啟動或接受藍牙配對) 的能力來設定。詳情請參閱第 3 卷、第 C 部分、表 5.4 部分。
名稱 | 值 | 說明 |
---|---|---|
無 |
1 |
沒有可配對的螢幕。 |
顯示形式 |
2 |
一則螢幕能顯示至少 6 位數的十進位數字。 |
PairingKeypress 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing.fidl
輸入密碼金鑰時,用來與同事傳送進度資訊。各種按鍵類型都可用來自訂要在要求配對的使用者傳遞什麼內容。
名稱 | 值 | 說明 |
---|---|---|
DIGIT_ENTERED |
1 |
使用者輸入了一組數字。 |
DIGIT_ERASED |
2 |
使用者清除了一個數字。 |
PASSKEY_CLEARED |
3 |
使用者已清除整個密碼金鑰。 |
PASSKEY_ENTERED |
4 |
使用者已輸入密碼金鑰。 |
PairingMethod 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing.fidl
安全管理員規定的配對方法所需的不同類型。 藍牙 SIG 對不同裝置功能有不同的要求。
名稱 | 值 | 說明 |
---|---|---|
同意 |
1 |
系統會要求使用者接受或拒絕配對。這是最低的方法,即使兩部裝置都不支援輸入或輸出功能,委派代表仍會要求確認任何未基於使用者意圖啟動的配對。 |
PASSKEY_DISPLAY |
2 |
使用者會在這部裝置上顯示 6 位數密碼金鑰,因此必須在對等裝置上輸入這組金鑰。 |
PASSKEY_COMPARISON |
3 |
使用者會在這部裝置上看到 6 位數的密碼金鑰,這組金鑰也會顯示在對等互連裝置上。如果密碼金鑰相符,使用者就必須比較密碼金鑰並接受配對。 |
PASSKEY_ENTRY |
4 |
系統會要求使用者在此裝置上輸入 6 位數密碼金鑰,並透過對等互連裝置進行通訊。 |
PairingSecurityLevel 嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/pairing_options.fidl
此配對所需的安全等級 - 對應於第 3 卷第 3 部分、第 2.3.1 節在安全管理員通訊協定中定義的安全等級
名稱 | 值 | 說明 |
---|---|---|
加密 |
1 |
無 MITM 防護的加密 (未驗證) |
已驗證 |
2 |
以 MITM 防護 (經驗證) 加密,不過這種等級無法完全防止被動竊聽程式 |
技術類型嚴格
類型:uint32
定義於 fuchsia.bluetooth.sys/peer.fidl
名稱 | 值 | 說明 |
---|---|---|
LOW_ENERGY |
1 |
|
傳統版 |
2 |
|
DUAL_MODE |
3 |
資料表
BondingData
定義於 fuchsia.bluetooth.sys/identity.fidl
代表單一對等點的連結資料。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
identifier |
fuchsia.bluetooth/PeerId
|
可明確識別這個對等點的識別碼。 |
2 |
local_address |
fuchsia.bluetooth/Address
|
與這個繫結相關聯的本機藍牙身分位址。 |
3 |
name |
fuchsia.bluetooth/DeviceName
|
對等點的名稱 (如果已知)。 |
6 |
address |
fuchsia.bluetooth/Address
|
對等點的身分地址。 |
7 |
le_bond |
LeBondData
|
這個對等點在 LE 傳輸上配對時存在的資料。 |
8 |
bredr_bond |
BredrBondData
|
這個對等點在 BR/EDR 傳輸上配對時存在的資料。 |
BredrBondData
定義於 fuchsia.bluetooth.sys/identity.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
role_preference |
fuchsia.bluetooth/ConnectionRole
|
同儕偏好的相片角色。具體情況取決於角色切換程序。如果透過分頁和對等點連線,系統不會自動設定這個標記。如未選取,則對等點沒有表示偏好。 |
2 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
從 EIR 資料或 SDP 取得的已知服務 UUID。 |
3 |
link_key |
PeerKey
|
半永久的 BR/EDR 金鑰。如果連結已與「安全簡易配對」配對或「更強」功能,就會顯示。 |
HostData
定義於 fuchsia.bluetooth.sys/identity.fidl
代表永久本機主機資料。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
irk |
LocalKey
|
在隱私權啟用的情況下,BT 主機裝置會使用本機身分解決金鑰,用於產生可解析私人地址。 如果主機未使用 LE 隱私保護,或者只有使用無法解析的私人地址,就可能缺少這項資訊。 注意:在配對過程中,系統會將此金鑰分配給 LE 點。用戶端必須謹慎指派與本機 bt-host 身分一致的 IRK。 |
HostInfo
定義於 fuchsia.bluetooth.sys/host_watcher.fidl
藍牙控制器及其關聯主機子系統狀態的相關資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/HostId
|
專門用於識別目前系統上的主機。 系統一律會提供這個欄位。 |
2 |
technology |
TechnologyType
|
本變壓器支援的藍牙技術。 系統一律會提供這個欄位。 |
4 |
active |
bool
|
指出這是否為使用中的主機。系統則有一個主動主機可處理所有藍牙程序。 |
5 |
local_name |
fuchsia.bluetooth/DeviceName
|
這個主機的本機名稱。這是當這個主機處於可探索模式時,其他裝置會看到的名稱。 |
6 |
discoverable |
bool
|
是否可透過 BR/EDR 和 LE 實體頻道找到本機轉接器。 |
7 |
discovering |
bool
|
系統目前是否正在執行裝置探索服務。 |
8 |
addresses |
vector<fuchsia.bluetooth/Address>
|
與主機相關聯的地址 (LE 和/或 BR/EDR)。 系統一律會先回報公開網址。 系統一律會提供這個欄位。 新增時間:11 張
|
身分識別
定義於 fuchsia.bluetooth.sys/identity.fidl
代表單一主機子系統執行個體的永久設定。這會用於呈現身分 (查詢、查詢回應和廣告),以及繫結密鑰召回 (將連結資料加密給與此身分相關聯的對等點)。
每個用來建立繫結的 BR/EDR BD_ADDR 和低功耗公開身分位址,都應有自己的身分識別執行個體,內含對應的對等執行個體。
每個支援 LE 隱私權的 Identity 執行個體都應有一個身分解決金鑰 (IRK),且該金鑰應與發布至該連結的對等點一致。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
host |
HostData
|
|
2 |
bonds |
vector<BondingData>
|
使用公開身分地址的所有鍵都必須包含相同的本機地址。 |
LeBondData
定義於 fuchsia.bluetooth.sys/identity.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
connection_parameters |
LeConnectionParameters
|
對等點的偏好連線參數 (如果已知)。 |
2 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
已知的 GATT 服務 UUID。 |
3 |
irk |
PeerKey
|
用於產生及解析隨機位址的身分解析 RemoteKey。 |
4 |
csrk |
PeerKey
|
連線簽章可解決用於在未加密資料簽署的 RemoteKey。 |
5 |
peer_ltk |
Ltk
|
當對等點處於 LE 週邊裝置角色時,用來加密連線的 LE 長期金鑰。 在舊版配對中 ( |
6 |
local_ltk |
Ltk
|
當對等點處於 LE Central 角色時,用來加密連線的 LE 長期金鑰。 在舊版配對中 ( |
PairingDelegate2StartRequestRequest 資源
定義於 fuchsia.bluetooth.sys/pairing.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
peer |
Peer
|
提出要求的對等點。 |
2 |
info |
PairingProperties
|
配對的屬性。 |
3 |
request |
PairingRequest
|
用來完成配對程序的通訊協定。 |
PairingOptions
定義於 fuchsia.bluetooth.sys/pairing_options.fidl
可讓呼叫端更精細地控管配對程序的參數。這個資料表的所有欄位皆為選用,而且如果未設定任何欄位,配對仍會成功。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
le_security_level |
PairingSecurityLevel
|
僅適用於 LE。如果使用的話,請決定要配對的 Security Manager 安全等級。如未顯示,則解讀為 PairingSecurityLevel.AUTHENTICATED。 |
2 |
bondable_mode |
BondableMode
|
如果傳輸為 LOW_ENERGY 或 DUAL_MODE,請檢查裝置是否應在配對期間形成綁定。如未顯示,系統會視為可連結模式。 如果傳輸為 CLASSIC,則必須留空,否則將值設為 BONDABLE。CLASSIC 傳輸目前不支援 NON_BONDABLE 模式 |
3 |
transport |
TechnologyType
|
如果交通方式為 LOW_ENERGY,表示您希望透過 LE 傳輸進行配對。 如果運輸方式為 CLASSIC,請指出您希望透過 Br/Edr 傳輸進行配對。如果傳輸為 DUAL_MODE,請表示希望同時透過兩種傳輸方式進行配對。如果不是,則解讀為 TechnologyType.DUAL_MODE |
PairingRequestAcceptRequest
定義於 fuchsia.bluetooth.sys/pairing.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
entered_passkey |
uint32
|
對等節點
定義於 fuchsia.bluetooth.sys/peer.fidl
代表遠端 BR/EDR、LE 或雙模式 BR/EDR/LE 點。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/PeerId
|
可在目前的系統上識別這個對等點。 系統一律會提供這個欄位。 |
2 |
address |
fuchsia.bluetooth/Address
|
用於識別這個對等點的藍牙裝置位址。當 系統一律會提供這個欄位。 注意:用戶端應使用 |
3 |
technology |
TechnologyType
|
此對等互連項目支援的藍牙技術。 系統一律會提供這個欄位。 |
4 |
connected |
bool
|
表示該對等互連項目是否存在 BR/EDR 和/或 LE 連線。 系統一律會提供這個欄位。 |
5 |
bonded |
bool
|
這個對等點是否已建立繫結。 系統一律會提供這個欄位。 |
6 |
name |
fuchsia.bluetooth/DeviceName
|
對等點的名稱 (如果已知)。 |
7 |
appearance |
fuchsia.bluetooth/Appearance
|
LE 外觀屬性。如果這個對等點支援 LE,且其外觀資訊是透過廣告和/或 GATT 取得,就會顯示。 |
8 |
device_class |
fuchsia.bluetooth/DeviceClass
|
此裝置的裝置類別 (如果已知)。 |
9 |
rssi |
int8
|
這個同類應用程式最近獲得的廣告信號強度。如果知道的話,會顯示。 |
10 |
tx_power |
int8
|
這個對等互連項目獲得的最新傳輸功率。如果知道的話,會顯示。 |
11 |
services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
這個對等互連項目上已知可用的服務 UUID 清單。 此為舊欄位,不應用於新程式碼。 已淘汰 |
12 |
le_services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
目前已知可在 LE 傳輸服務使用的 UUID 清單。 若是 CLASSIC,則一律不顯示。 |
13 |
bredr_services |
vector<fuchsia.bluetooth/Uuid>[65535]
|
先前在 BR/EDR 傳輸上發現的服務 UUID 快取清單。如果後續搜尋找不到對等互連服務,系統不會移除對等互連服務。 如果技術為 LOW_ENERGY,則一律不顯示。 此為舊欄位,不應用於新程式碼。 已淘汰 |
設定
定義於 fuchsia.bluetooth.sys/configuration.fidl
代表可供設定的藍牙主機子系統參數。每個參數都會在藍牙系統初始化時設為預設。您可以在 //src/connectivity/bluetooth/core/bt-gap/config/default.js 中查看每個參數的預設值。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
le_privacy |
bool
|
如果為 true,則啟用 LE Privacy 功能 (如果設為 False)。如果沒有,請保持目前的值。啟用後,所有廣播本機裝置位址的 BLE 程序 (主動掃描、連線啟動和廣告) 都會使用可解析私人位址類型。停用時,這些程序會顯示指派給控制器的本機公開身分位址。 我們強烈建議您對產品啟用這項功能。 |
2 |
le_background_scan |
bool
|
如果設為 True,則啟用 LE 背景掃描功能 (如果設為 False)。如果沒有,請保持目前的值。啟用後,系統會維護進行中的被動掃描,並為處於「可連線」或「導向式連線」模式的綁定對等點建立連線。 |
3 |
bredr_connectable_mode |
bool
|
如果設為 True,則啟用 BR/EDR 可連線模式 (如果設為 False)。如果沒有,請保持目前的值。啟用後,bt-host 裝置會進入 BR/EDR 頁面掃描模式,並接受連線。 |
4 |
le_security_mode |
LeSecurityMode
|
如果存在,則會設定主機子系統的 LE 安全模式;如果不存在,則維持現值。詳情請參閱 BT Core Spec v5.2 Vol. 3 Part C 10.2。如果顯示並設為「僅限安全連線」模式,任何不符合「僅限安全連線」模式的有效連線都會中斷連線。 |
5 |
bredr_security_mode |
BrEdrSecurityMode
|
如果存在,則會設定主機子系統的 BR/EDR 安全模式;如果沒有,則讓目前的值維持不變。詳情請參閱 BT Core Spec v5.2 Vol. 3 Part C 5.2.2。如果顯示並設為「僅限安全連線」模式,任何不符合「僅限安全連線」模式的有效連線都會中斷連線。 新增日期:14 天
|
聯合國
Access_Connect_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_Connect_Response
|
|
2 |
err |
Error
|
Access_Connection_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_Disconnect_Response
|
|
2 |
err |
Error
|
Access_Forget_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_Forget_Response
|
|
2 |
err |
Error
|
Access_MakeDiscoverable_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_MakeDiscoverable_Response
|
|
2 |
err |
Error
|
Access_Pair_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_Pair_Response
|
|
2 |
err |
Error
|
Access_StartDiscovery_Result 嚴格
定義於 fuchsia.bluetooth.sys/access.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Access_StartDiscovery_Response
|
|
2 |
err |
Error
|
Bootstrap_Commit_Result 嚴格
定義於 fuchsia.bluetooth.sys/bootstrap.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Bootstrap_Commit_Response
|
|
2 |
err |
BootstrapError
|
HostWatcher_SetActive_Result 嚴格
定義於 fuchsia.bluetooth.sys/host_watcher.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
HostWatcher_SetActive_Response
|
|
2 |
err |
zx/Status
|
PairingProperties 彈性
定義於 fuchsia.bluetooth.sys/pairing.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
consent |
Consent
|
系統會要求使用者接受或拒絕配對。這是最低的方法,即使兩部裝置都不支援輸入或輸出功能,委派代表仍會要求確認任何未基於使用者意圖啟動的配對。 |
2 |
passkey_display |
uint32
|
使用者會在這部裝置上顯示 6 位數密碼金鑰,使用者必須將這組金鑰登錄在對等互連裝置上。提供要顯示的密碼金鑰。 |
3 |
passkey_confirmation |
uint32
|
使用者會在這部裝置上看到 6 位數的密碼金鑰,這組金鑰也會顯示在對等互連裝置上。如果密碼金鑰相符,使用者就必須比較密碼金鑰並接受配對。提供要顯示的密碼金鑰。 |
4 |
passkey_entry |
PasskeyEntry
|
系統會要求使用者在此裝置上輸入 6 位數密碼金鑰,並透過對等互連裝置進行通訊。 |
業者
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
MAX_PEER_SERVICES |
65535
|
uint16 |
每項傳輸的探索服務數量上限。目前已設為用於存取服務的有效 16 位元控制代碼或 PSM 數量。 |
別名
名稱 | 值 | 說明 |
---|---|---|
LocalKey |
fuchsia.bluetooth.sys/Key |
代表本機產生的金鑰,將分配到一或多個鍵。 |