我正在使用該bluetoothctl
實用程式在電腦和 Raspberry Pi 之間建立藍牙連接。
在 中bluetoothctl
,我可以看到有一個叫做“代理”的東西,透過查看大多數教程,必須將這個“代理”設置為“打開”才能創建連接。我想了解什麼是藍牙代理。
1)什麼是藍牙代理?
2) for 中的「default-agent」指令是什麼bluetoothctl
?所有連接都可以相同嗎?
3)建立連線時不使用代理有什麼影響?
4)透過查看man bluetoothctl
,據說代理可以設定能力。什麼是代理能力?那裡可以放什麼值?
5)代理只能透過藍牙存在嗎?還有wifi代理嗎?
我對藍牙世界相當陌生,並且 bluetoothctl 的文檔非常有限......任何資訊將不勝感激。
答案1
藍牙代理負責管理藍牙「配對代碼」。它可以回應傳入的“配對碼”,也可以發送“配對碼”。
預設代理應該適合您。您說您是藍牙新手,所以我建議您暫時使用預設值。
不使用代理將意味著這兩個裝置無法協商「配對代碼」。
一個例子可能會有所幫助,所以這裡有一個在我的 Raspberry Pi 3 上運行的名為 Shep 的範例:
pi@shep:~/bluetooth $ bluetoothctl
[NEW] Controller B8:27:EB:B0:BC:22 shep [default]
[NEW] Device 18:9E:FC:94:8C:33 iPhone4
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
[CHG] Device 18:9E:FC:94:8C:33 Connected: no
這裡我要求iPhone與Shep配對,iPhone發送了680044。
[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
Request confirmation
[agent] Confirm passkey 680044 (yes/no): yes
或者如果您想提前設定密鑰,請參閱以下內容:
http://www.heatxsink.com/entry/how-to-pair-a-bluetooth-device-from-command-line-on-linux
設定藍牙代理以傳遞預期的配對代碼
$ bluetooth-agent 0000 &
顯然“0000”可以是任何數字。
這些代理程式和「配對代碼」是特定於藍牙而不是 Wi-Fi。