IvBaranov / RxBluetooth

Android reactive bluetooth
Apache License 2.0
408 stars 95 forks source link

Socket not created exception #19

Open arajthala opened 7 years ago

arajthala commented 7 years ago

I am getting following exception when I'm not able to connect to bluetooth device and then I navigate to some other page. Is there any way to catch this exception in my code?

E/System:Uncaught exception thrown by finalizer E/System: java.io.IOException: socket not created at android.net.LocalSocketImpl.shutdownInput(LocalSocketImpl.java:404) at android.net.LocalSocket.shutdownInput(LocalSocket.java:207) at android.bluetooth.BluetoothSocket.close(BluetoothSocket.java:801) at android.bluetooth.BluetoothSocket.finalize(BluetoothSocket.java:309) at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:222) at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:209)

mSubscriptionConnectDevice = mRxBluetooth.observeConnectDevice(mBluetoothDevice, uuid)
 .observeOn(AndroidSchedulers.mainThread())
 .subscribeOn(Schedulers.computation())
 .subscribe(new Action1 < BluetoothSocket > () {
  @Override
  public void call(BluetoothSocket bluetoothSocket) {
   try {
    mBluetoothConnection = new BluetoothConnection(bluetoothSocket);
    startReadingBluetoothData(); // this method starts read data subscription
   } catch (Exception e) { // This didn't catch any exception
    Log.e(TAG, "Error bluetooth connection:" + e.getMessage());
    if (bluetoothSocket != null) {
     try {
      bluetoothSocket.close();
     } catch (IOException e1) {
      Log.e(TAG, "IOException: " + e1.getMessage());
     }
    }
   }
  }
 }, new Action1 < Throwable > () {
  @Override
  public void call(Throwable throwable) {
   Log.e(TAG, "Error bluetooth connection: " + throwable.getMessage()); // I get this log message before getting that IOException : socket not created 
  }
 });
arajthala commented 7 years ago

Actually, I'm trying to implement auto connect; so trying to reconnect the previously connected device in my service and i see this error if the bluetooth device is not in range or turned off.

MaxKinny commented 5 years ago

I try to do the same thing and meet the same question. Did you solve it?