2012-08-12 34 views
0

我正在嘗試製作一個Android應用程序,用於接收和顯示來自配對藍牙設備的數據。我有一個工作python代碼,我想在android.I編寫類似的代碼。我可以在Android手機運行Python,但沒有用戶界面!代碼找到使用RFCOMM的端口,然後使用socket連接。藍牙設備的地址位於XX:XX:XX:XX:XX:XX格式,我不確定如何爲android編寫代碼。你幫我!謝謝! 這裏是我的Python代碼:如何使用Android中的藍牙服務器Socket RFCOMM接收數據?

from bluetooth import * 
from sys import stdout 

server_address = "XX:XX:XX:XX:XX:XX" 
#port = get_available_port(RFCOMM) 
try: 
    my=sock 
except: 
    sock=BluetoothSocket(RFCOMM) 
    sock.connect((server_address, 1)) 
    print "connected" 
else: 
    print "---" 
    data=0 
while 1: 
data= sock.recv(1) 
if data== '': 
    print "Socket broken" 
else: 
    data= data 
    print "received" 
    print text 

sock.close() 
sock=None 
del sock 

可以這樣的Android代碼的幫助?

String deviceAddress = "XX:XX:XX:XX:XX:XX"; 
adapter = BluetoothAdapter.getDefaultAdapter(); 

BluetoothDevice device = _adapter.getRemoteDevice(deviceAddress); 

try { 
    socket = device.createRfcommSocketToServiceRecord(BluetoothSerialUuid); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

try { 
    socket.connect(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

做ü看到這個http://stackoverflow.com/questions/5680259/using-sockets-to-send-and-receive-data。?? – jenuine 2012-08-12 06:21:41

+0

是的,但你如何設置接收套接字? – milan7 2012-08-12 07:17:01

+0

嘗試http://android-er.blogspot.in/2011/01/simple-communication-using.html – jenuine 2012-08-12 07:22:52

回答

1

您可以找到此示例在SDK的全部源代碼:

<sdk>/platforms/android-<version>/samples/

其中有名稱BLUETOOTH CHAT看到代碼和過濾你想要什麼:)

+0

這是發送數據的一個很好的例子,但我怎麼能改變它,所以它只能連接到deviceAddress =「XX:XX:XX:XX:XX:XX」並且接收數據:)謝謝 – milan7 2012-08-12 20:38:58

+0

我明白了!沒關係! – milan7 2012-08-13 01:45:03

+1

首先你想配對藍牙設備,之後你可以發送recive在android ,以編程方式。閱讀它在這裏http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html – jenuine 2012-08-13 04:47:03