2016-04-01 4 views
0

概要

クライアントとしてのAndroid PhoneとサーバーとしてのPythonの間にBluetooth接続が必要です。私はそれを把握することはできません助けてください。サーバー側はPythonを搭載したPC上になければなりません。私はサーバーとしてPythonコードが必要で、Sl4AはこのPCに接続できます。私はたくさんのコードを試しましたが、うまく動作しませんでした。SL4AクライアントPythonサーバー

SL4A Bluetooth_chat.py

import android 
import time 
droid = android.Android() 
droid.toggleBluetoothState(True) 
droid.dialogCreateAlert('Be a server?') 
droid.dialogSetPositiveButtonText('Yes') 
droid.dialogSetNegativeButtonText('No') 
droid.dialogShow() 
result = droid.dialogGetResponse() 
is_server = result.result['which'] == 'positive' 
    if is_server: 
    droid.bluetoothMakeDiscoverable() 
    droid.bluetoothAccept() 
else: 
    droid.bluetoothConnect() 

if is_server: 
    result = droid.dialogGetInput('Chat', 'Enter a message').result 
    if result is None: 
    droid.exit() 
    droid.bluetoothWrite(result + '\n') 

while True: 
    result = droid.dialogGetInput('Chat', 'Enter a message').result 
    if result is None: 
    break 
    droid.bluetoothWrite(result + '\n') 

droid.exit() 

私の答え

import requests 
from bluetooth import * 

server_sock=BluetoothSocket(RFCOMM) 
server_sock.bind(("",PORT_ANY)) 
server_sock.listen(1) 

port = server_sock.getsockname()[1] 

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee" 

advertise_service(server_sock, "SampleServer", 
       service_id = uuid, 
       service_classes = [ uuid, SERIAL_PORT_CLASS ], 
       profiles = [ SERIAL_PORT_PROFILE ], 
#     protocols = [ OBEX_UUID ] 
       ) 

print("Waiting for connection on RFCOMM channel %d" % port) 

client_sock, client_info = server_sock.accept() 
print("Accepted connection from ", client_info) 

try: 
    while True: 
     data = client_sock.recv(1024) 
     if len(data) == 0: break 
     print("received [%s]" % data) 
      params=userdata) 

except IOError: 
    pass 

print("disconnected") 

client_sock.close() 
server_sock.close() 
print("all done") 

答えて

0

SL4Aを使用して試してみて、Googleがリリースしていること行為:

をSL4A場所:aosp_root/external/sl4a

A CTSテストフレームワーク場所:aosp_root/tools/test/connectivity/tests/google/bt/SppTest.py

:そこにテストフレームワークの中で aosp_root/tools/test/connectivity

テストSPP上でBTにあなたのスタートを与えることができますテストケースであります

関連する問題