[英]python bluetooth - check connection status
我正在使用 python import bluetooth
的藍牙模塊,我相信它是 PyBluez package。我能夠從藍牙連接、發送和接收。BluetoothSocket class 但我的應用程序在涉及狀態時完全失明聯系。
我希望我的應用程序在設備斷開連接時禁用某些功能,但似乎沒有任何類型的 BluetoothSocket.is_connected() 方法。 我希望它能在藍牙狀態發生變化時立即檢測到它們。
通常有多個關於像這樣簡單的主題的主題,如果這是重復的,我們深表歉意。 我已多次搜索此站點以尋找答案,但沒有發現任何特定於 python 的內容。
如果您的SO是linux,則可以使用hcitool ,它將告訴您藍牙設備的狀態。
請在下面找到一個可以滿足您需求的Python小片段。 您將需要知道藍牙設備的MAC:
import subprocess as sp
stdoutdata = sp.getoutput("hcitool con")
if "XX:XX:XX:XX:XX:XX" in stdoutdata.split():
print("Bluetooth device is connected")
希望這可以幫助!
如果您使用的是Linux,還可以使用BluetoothSocket的getpeername()
方法檢查設備是否仍然可用。 此方法(繼承自python的套接字類)返回套接字連接到的遠程地址。
如果設備仍然可用:
>>>sock.getpeername()
('98:C3:32:81:64:DE', 1)
如果未連接設備:
>>>sock.getpeername()
Traceback (most recent call last):
File "<string>", line 3, in getpeername
_bluetooth.error: (107, 'Transport endpoint is not connected')
因此,要測試套接字是否仍連接到實際設備,可以使用:
try:
sock.getpeername()
still_connected = True
except:
still_connected = False
獲取 mac 地址的更簡單方法:
import getmac
from getmac import get_mac_address as gma
mac_addr = gma()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.