Отправить файл через Bluetooth на сопряженное устройство - PullRequest
0 голосов
/ 02 марта 2019

Я разрабатываю приложение для Android, которое отправляет файлы и некоторые данные на другое устройство через Bluetooth, а затем получает некоторые данные.

Сначала я попытался сделать это с помощью разъема Bluetooth.

class BluetoothService{ 
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");

BluetoothAdapter adapter;

Handler handler;

Context context;

ConnectedThread mConnectedThread;

BluetoothService(Context context, Handler handler)
{
    adapter = BluetoothAdapter.getDefaultAdapter();
    this.context = context;
    this.handler = handler;
}

void connect(BluetoothDevice device)
{
    BluetoothSocket tmp = null;
    try
    {
        tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
    }
    catch (IOException e)
    {
    }

    mConnectedThread = new ConnectedThread(tmp);
    mConnectedThread.start();
    //mConnectedThread.run();
}
class ConnectedThread extends Thread
{
    private BluetoothSocket socket;
    private InputStream inputStream;
    private OutputStream outputStream;
    ConnectedThread(BluetoothSocket tmpSocket)
    {
        InputStream tmpIn = null;
        OutputStream tmpOut = null;

        try
        {
            tmpIn = tmpSocket.getInputStream();
            tmpOut = tmpSocket.getOutputStream();

        } catch (IOException e)
        {
        }
        socket = tmpSocket;
        inputStream = tmpIn;
        outputStream = tmpOut;

        try
        {
            socket.connect();
        }catch (IOException e)
        {
        }
    }
    public void run()
    {
        byte[] buffer = new byte[1024];
        int bytes;
        //while (true)//crash app
        try
        {
            int bytesAvaiable = inputStream.available();

            bytes = inputStream.read(buffer);
            handler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer).sendToTarget();
        }catch (IOException e)
        {

        }
    }

    void write(byte[] bytes)
    {
        try
        {
            outputStream.write(bytes);
        }catch (IOException e)
        {
        }
    }

но мне не удалось!чтение и запись сокета не может соединиться с гнездом Bluetooth.затем попытался использовать Bluetooth по умолчанию для отправки файла на подключенное устройство.

Intent intent = new Intent();
            intent.setAction(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.setPackage("com.android.bluetooth");
            intent.setType("audio/*");

            //intent.setDevice(address_paired_device);

            startActivity(intent);

как я могу отправить файл на подключенное устройство Bluetooth, используя этот код?

...