BLE サーバーを公開する Android アプリケーションがあります。BluetoothGattServer#connectで接続します。それは動作します - 私のアプリはSTATE_CONNECTEDでBluetoothGattServerCallback#onConnectionStateChangeへの呼び出しを取得します。クライアントの操作が完了したら、BluetoothGattServer#cancelConnectionを使用してアプリから切断しようとします。
しかし、 BluetoothGattServerCallback#onConnectionStateChangeへの呼び出しが得られず、BLE クライアントがアドバタイズを開始しないため、接続がまだアクティブであるように見えます (何も接続されていない場合)。
logcat では次のように表示されます:
BluetoothGattServer: cancelConnection() - device: XX:XX:XX:XX:XX:XX
おもしろいのは、BT を完全にオフにするとすぐに、アプリがSTATE_DISCONNECTEDでBluetoothGattServerCallback#onConnectionStateChangeを呼び出すことです。