6

私はBLEサーバーを公開するAndroidアプリケーションを持っています。私はBluetoothGattServer#connectに接続します。それは動作します - 私のアプリはBluetoothGattServerCallback#onConnectionStateChangeSTATE_CONNECTEDで電話します。私はクライアントと私はBluetoothGattServer#cancelConnectionと私のアプリから切断しようとしている。BluetoothGattServer cancelConnectionは接続をキャンセルしません

しかし、私はBluetoothGattServerCallback#onConnectionStateChangeに呼び出して取得しないと、私のBLEクライアントが(何がそれに接続されていない場合それがないもの)宣伝を開始しないように、接続がまだアクティブであると思われます。 logcatで

は、私だけを参照してください。

BluetoothGattServer: cancelConnection() - device: XX:XX:XX:XX:XX:XX 

面白い部分がある、私のアプリはすぐに、私は完全にBTをオフとしてSTATE_DISCONNECTEDBluetoothGattServerCallback#onConnectionStateChangeに呼び出して取得します。

Googleのトラッカーのよくある質問:6346163464

+0

IIRCのcancelConnectionが完全に初期の機器のほとんどに壊れているのAndroid BLE最初に出てきて、Googleはそれを修正しないことに決めました。 – reTs

+0

この問題を修正しましたか?私は同じことで苦労している –

+0

いいえ - 私はできる限りBLEから離れて移動することにしました。 –

答えて

1

disconnect()メソッドの呼び出し時に同じ問題が発生しました.BluetoothGattCallbackのonConnectionStateChangeに切断がありません。

サイクリングBluetoothが動作する唯一のものだと思われます。

編集: も、呼ばれ切断()とclose()メソッドの後、私はまだこのコードに従って接続しています:

public int getConnectedBLEDevices() { 
     int i = 0; 
     List<BluetoothDevice> devices = mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT); 
     for(BluetoothDevice device : devices) { 
      if(device.getType() == BluetoothDevice.DEVICE_TYPE_LE) { 
       Logs.writeEvent(TAG+".getConnectedBLEDevices()", device.getAddress() + "\n"+ getStateAsString(mBluetoothManager.getConnectionState(device, BluetoothProfile.GATT))); 
       i++; 
      } 
     } 
     return i; 
    } 
+0

「サイクリング・ブルートゥースだけがうまくいくようです」とはどういう意味ですか? –

+0

ブルートゥースの電源を入れたり切ったりする – user1064249

+0

この問題を解決しましたか?私は同じことで苦労している –

関連する問題