Я пытаюсь установить 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();
}
}
}