3

My app is facing issue while connecting to BLE device. On every connection attempt app makes, it gets Error code 0x0006(Request not supported) in OnConnectionStateChange() method. I have tried Bluetooth OFF/ON but still getting same error.

I am facing this issue in LG D410(Android 5.0.2). After I upgraded my LG phone to 5.0.2, app started getting this error. My app is working fine with Samsung Galaxy S4(Android 5.1), Nexus 5(Android 6.0).

Why am I getting this error? What can be done to fix it?

Here is the logs of error:

02-26 05:30:53.919 D/MyBluetoothClass-1392940(21607): trying to connect with address: 78:A5:04:86:D4:16 02-26 05:30:53.944 D/MyBluetoothClass-1392940(21607): Create a new GATT connection. 02-26 05:30:53.945 D/BluetoothGatt(21607): connect() - device: 78:A5:04:86:D4:16, auto: true 02-26 05:30:53.945 D/BluetoothGatt(21607): registerApp() 02-26 05:30:53.945 D/BluetoothGatt(21607): registerApp() - UUID=a81c9b62-f822-4e42-9af0-752a8eab82a1 02-26 05:30:53.947 D/BluetoothGatt(21607): onClientRegistered() - status=0 clientIf=5 02-26 05:30:53.947 D/MyBluetoothClass-1392940(21607): Connection attempt started; results reported asynchronously 02-26 05:30:53.947 D/BluetoothGatt(21607): refresh() - device: 78:A5:04:86:D4:16 02-26 05:30:53.950 D/BluetoothGatt(21607): onClientConnectionState() - status=6 clientIf=5 device=78:A5:04:86:D4:16 02-26 05:30:53.951 D/MyBTGattCallback(21607): onConnectionStateChange, newState: 0 02-26 05:30:53.951 E/MyBTGattCallback(21607): onConnectionStateChange status 0006 desc Req not supported

Alina
  • 130
  • 1
  • 13

1 Answers1

0

I think there is an issue in BlueDroid framework in Android Lollipop versions. if you use connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback) pass autoConnect = false;

making autoConnect true causes abnormality in onClientConnectionState in Lollipop version, however, works appropriately in Marshmallow.

I made it work.

@Override
protected void onStart() {
    super.onStart();
    Log.d(TAG,"connecting Gatt");
    bluetoothGatt = bleScanResult.getBluetoothDevice().connectGatt(this, false, callback);
}


@Override
    protected void onStop() {
        super.onStop();
        if (bluetoothGatt != null) {
            Log.d(TAG,"disconnecting Gatt");
            bluetoothGatt.disconnect();
            bluetoothGatt.close();
            bluetoothGatt = null;
        }
    }
navalkishoreb
  • 533
  • 2
  • 8
  • 16