Отправка строки из Raspberry Pi на Android с помощью Bluetooth - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь отправить строку с Raspberry Pi на телефон Android с помощью Bluetooth.Я могу подключить два устройства, но у меня возникают проблемы с получением данных на телефон.Вот мой код Python на Raspberry Pi с использованием Pybluez:

from bluetooth import *
import time

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

port = server_sock.getsockname()[1]

uuid = "00001101-0000-1000-8000-00805F9B34FB"

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)



while True:
    try:
        print("Preparing to send data\n")
        server_sock.send("This is a test of the android raspberry pi Bluetooth Connection\n")
        print("Data sent\n")
        time.sleep(0.5)


    except IOError:
        pass

print ("disconnected")

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

, а вот часть моего кода для Android, где я хочу получать данные:

package com.wjcparkinson.bluetoothtest;

import android.bluetooth.BluetoothSocket;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;

public class InputDataReader extends Thread{
    private static final String TAG = "Data Input Tag";
    private final InputStream inStream;

    private final BluetoothSocket socket;

    public InputDataReader(BluetoothSocket tmpSocket){
        socket = tmpSocket;
        InputStream tmpIn = null;
        try{
            tmpIn = socket.getInputStream();
        } catch(IOException e){
            Log.e(TAG,"Error occurred creating input stream",e);
        }

        inStream = tmpIn;
    }

    public void run(){
        //Receive data from pi and put into string format here.
}

Это то, чтоЯ получаю, когда программа запускается на пи:

pi@BIKE_SENSOR_SYSTEM:~ $ sudo python Bluetest.py
Waiting for connection on RFCOMM channel 1
('Accepted connection from ', ('9C:5C:F9:5B:15:8A', 1))

Каков наилучший метод для воссоздания строки, отправленной с Raspberry Pi на устройстве Android?

...