title: Android BLE GATT Disconnected vs. Device Disconnected
body: <p>I'm working on an Android app that communicates with a custom bluetooth device. After calling <code>BluetoothGatt.Disconnect()</code> I am seeing that the <code>OnConnectionStateChange</code> callback is called, and the new state is <code>Disconnected</code>, however, there seems to be a lag between when that happens and when the Device itself is actually disconnected. For example, if I call BluetoothManager.GetConnectionState(...) with the device that was connected, it still returns Connected. Sometimes it takes several <strong>seconds</strong> before <code>GetConnectionState</code> returns <code>Disconnected</code>. Is this normal? Is it possible that I am doing something wrong in my application that could be causing this? e.g. disconnecting from a non-UI tread, or something like that? Or, is it possible that the physical bluetooth device itself is not handling the disconnect properly and maybe not completing the disconnect event promptly?</p>