Java Bluetooth bağlantı sorunu

Katılım
20 Mart 2020
Mesajlar
1.080
Makaleler
1
Çözümler
5
Merhaba, Android Studio'da diğer cihaz ile Bluetooth kullanarak bağlantı kurmaya çalışıyorum fakat bağlantı başarısız diyor her seferinde. Sorun nerede onu da bulamadım.
Kodları aşağıya bırakıyorum. Address'de sıkıntı yok, println yaptırdığımda gözüküyor fakat bağlantıyı kuramıyorum. Yardımcı olur musunuz?
Logchat: Java. IO. Ioexception: Read failed, socket might closed or timeout, read ret: -1.

Java:
package com.example.arduinocarcontroller;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothServerSocket;
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 com.fazecast.jSerialComm.SerialPort;

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 cihaz = myBluetooth.getRemoteDevice(address);
btsocket = cihaz.createInsecureRfcommSocketToServiceRecord(myuuid);
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
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();
}

}

}
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı