6

BluetoothGatt.disconnect()タイマーをスケジュールして手動で呼び出すことにより、Bluetooth GATT サービスに独自のタイムアウトを実装しようとしています。ただし、リモート デバイスから切断がトリガーされた場合に通常発生するようなコールバックは呼び出されません。BluetoothGatt切断機能が呼び出されたというからのログもあります。

D/BluetoothGatt﹕ cancelOpen() - device: 00:07:80:04:1A:5A

これは切断するための私のコードです

private void scheduleDisconnect() {
    isTimerRunning = true;
    disconnectTimer = new Timer();
    disconnectTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            isTimerRunning = false;
            disconnect();
        }
    }, 2000);
}

なぜonConnectionStateChange呼び出されないのですか?別のコールバックとアクションでうまく機能しています

4

2 に答える 2

0

デバイスを切断するには、デバイスの gatt リンクを使用し、メソッド BluetoothGatt.disconnect() および BluetoothGatt.close() を使用します。

これは機能しましたが、フラックスを閉じたため、onConnectionStateChange() を呼び出しませんでした。

于 2015-02-12T15:02:15.243 に答える