[英]send string variable from raspberry pi 2 to android app over bluetooth
[英]How to build Android Bluetooth server app handling data sent from Raspberry Pi using pybluez
我想知道如何構建處理從Raspberry pi發送的數據的Android應用程序。
我在Raspberry Pi上安裝了pybluez模塊,並使用以下python腳本發送數據。
import bluetooth
port = 1
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((targetBluetoothMacAddress, port))
#targetBluetoothMacAddress is my phone MacAddress
sock.send("hello!!")
sock.close()
在手機上,我確實看到兩個設備成功配對。 但是找不到從Raspberry Pi發送數據的方法。 有沒有一種方法可以構建一個處理來自sock.send()的數據的應用程序?
您需要查閱Android藍牙API,但是可以,您可以輕松構建應用。 首先,您想要做的是獲得對BluetoothDevice的引用,該藍牙設備代表您要連接的Raspberry Pi。 您可以通過調用做到這一點BluetoothAdapter.startDiscovery()或通過調用直接詢問與樹莓派的MAC地址的設備框架BluetoothAdapter.getRemoteDevice(...) 。
擁有設備后,您將要使用該設備打開BluetoothSocket 。 為此,請調用createRfcommSocketToServiceRecord(UUID) 。 如果您要使用SPP連接到Raspberry Pi,則UUID參數將更可能是“ 0001101-0000-1000-8000-00805F9B34FB”。 create方法將為您返回一個BluetoothSocket,您需要在其上調用connect() 。 注意,connect是一個阻塞調用,您將需要在輔助線程中執行所有這些工作,以防止鎖定UI。 如果連接成功返回,則說明您已成功連接設備。 為了實現與該設備的來回通信,您需要通過在BluetoothSocket上調用以下兩個方法getInputStream()和getOutputStream()來保持其輸入和輸出流。
一旦有了這兩個流,就可以在兩個設備之間來回發送字節數據。 請注意,從流中進行讀取和寫入是阻塞操作,因此我建議創建兩個用於讀取和寫入數據的單獨線程,將流和Handler傳遞到線程構造函數中,以便可以將數據發送回UI線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.