Java Bluetooth-соединение - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь установить sh соединение с другим устройством с помощью Bluetooth в Android Studio, но каждый раз появляется сообщение о сбое подключения. В адресе нет проблем, он появляется, когда я печатаю, но не могу установить sh соединение. Не могли бы вы помочь? Логчат: Java. ИОН. Ioexception: ошибка чтения, сокет может быть закрыт или истекло время ожидания, прочтите ret: -1.

package com.example.arduinocarcontroller;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;
import java.util.UUID;

public class MainActivity extends AppCompatActivity {
    boolean start , park , light;
    Button startbutton;
    String address = null;
    BluetoothAdapter myBluetooth= null;
    BluetoothSocket btsocket= null;
    Boolean btconnection = false;
    ProgressDialog progress;
    static  final UUID myuuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startbutton = findViewById(R.id.button);
        start =false;
        park = false;
        light = false;
        Intent intent = getIntent();
        address = intent.getStringExtra("address");
        System.out.println(address);
        new BTbaglan().execute();
    }

    public void startonclick(View view){
        if (start==true){
            start = false;
            Toast.makeText(MainActivity.this, "Motor Kapatıldı", Toast.LENGTH_SHORT).show();
            startbutton.setText("Motoru Çalıştır");
            return;
        }
        if (start == false){
            start = true;
            Toast.makeText(MainActivity.this, "Motor Çalıştırıldı", Toast.LENGTH_SHORT).show();
            startbutton.setText("Motoru Kapat");
            return;
        }
    }
    public void parkonclick(View view){
        if (park==true){
            park = false;
            Toast.makeText(MainActivity.this, "Otomatik Park Etme Kapalı", Toast.LENGTH_SHORT).show();
            return;
        }
        if (park== false){
            park = true;
            Toast.makeText(MainActivity.this, "Otomatik Park Etme Açık", Toast.LENGTH_SHORT).show();
            return;
        }

    }
    public void lightonclick(View view){
        if (light==true){
            light = false;
            Toast.makeText(MainActivity.this, "Farlar Kapalı", Toast.LENGTH_SHORT).show();
            return;
        }
        if (light== false){
            light = true;
            Toast.makeText(MainActivity.this, "Farlar Açık", Toast.LENGTH_SHORT).show();
            return;
        }

    }
    private void Disconnect(){
        if(btsocket!=null){
            try {
                btsocket.close();
            } catch (IOException e){
                // msg("Error");
            }
        }
        finish();
    }
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        Disconnect();
    }
    private class BTbaglan extends AsyncTask<Void, Void, Void> {
        private boolean ConnectSuccess = true;

        @Override
        protected void onPreExecute() {
             progress = ProgressDialog.show(MainActivity.this, "Baglanıyor...", "Lütfen Bekleyin");
        }


        @Override
        protected Void doInBackground(Void... devices) {
            try {
                if (btsocket == null || !btconnection) {
                    myBluetooth = BluetoothAdapter.getDefaultAdapter();
                    BluetoothDevice device = myBluetooth.getRemoteDevice(address);
                    btsocket = device.createInsecureRfcommSocketToServiceRecord(myuuid);
                    BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
                    System.out.println("deneme");
                    btsocket.connect();
                }
            } catch (IOException e) {
                e.printStackTrace();
                 ConnectSuccess = false;
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            if (!ConnectSuccess) {
                Toast.makeText(getApplicationContext(),"Bağlantı Hatası Tekrar Deneyin",Toast.LENGTH_SHORT).show();
                finish();
            } else {

                Toast.makeText(getApplicationContext(),"Bağlantı Başarılı",Toast.LENGTH_SHORT).show();

               btconnection= true;
            }
            progress.dismiss();
        }

    }

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