java .io.IOException: чтение не удалось, сокет может быть закрыт или истекло время ожидания, чтение в ответ: -1 - AndroidStudio и Bluetooth - PullRequest
0 голосов
/ 12 февраля 2020

Я совершенно новичок ie в AndroidStudio, но мне нужно создать приложение, подключающееся к stm32.

Прежде всего, я просто хотел узнать, как создать приложение, которое отправляет сигнал модуль, поэтому я смотрел этот учебник на YouTube: https://www.youtube.com/watch?v=TLXpDY1pItQ

Я сделал все шаг за шагом, и вдруг я получил такую ​​ошибку:

W/BluetoothAdapter: getBluetoothService() called with no BluetoothManagerCallback
W/System.err: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
        at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:762)
        at android.bluetooth.BluetoothSocket.readInt(BluetoothSocket.java:776)
W/System.err:     at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:399)
        at com.example.quiz.MainActivity2.onCreate(MainActivity2.java:52)
        at android.app.Activity.performCreate(Activity.java:7232)
        at android.app.Activity.performCreate(Activity.java:7221)
W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2964)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3119)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
W/System.err:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1839)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:201)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6864)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

И мой код выглядит так:

package com.example.quiz;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.widget.Button;

import java.io.IOException;
import java.util.UUID;

public class MainActivity2 extends AppCompatActivity {

    static final UUID mUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

    BluetoothSocket btSocket = null;

    BluetoothAdapter bluetoothAdapter;


    Button buttonLED;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);


        //przycisk
        buttonLED = findViewById(R.id.buttonL);


        //adapter
        bluetoothAdapter = bluetoothAdapter.getDefaultAdapter();

        //moduł
        final BluetoothDevice hc05 = bluetoothAdapter.getRemoteDevice("98:D3:31:FC:17:90");

        //socket
        int counter = 0;
        do {
            try {
                btSocket = hc05.createRfcommSocketToServiceRecord(mUUID);
                btSocket.connect();
                System.out.println(btSocket.isConnected());
            } catch (IOException e) {
                e.printStackTrace();
            }
            counter++;
        } while(!btSocket.isConnected() && counter < 3);


        try {
            btSocket.close();
            System.out.println(btSocket.isConnected());
        } catch (IOException e) {
            e.printStackTrace();

        }


        buttonLED.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                System.out.println(btSocket);

            }
        });



    }


}

Я не знаю, что не так с этим кодом, потому что в этом уроке все работало. Не могли бы вы помочь мне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...