Как выключить bluetooh с помощью ble manager? - PullRequest
2 голосов
/ 02 августа 2020

Я использую диспетчер ble для включения и выключения bluetooth, но когда я перемещаю переключатель, он остается в исходном состоянии и не выполняет условие if.

body:Switch(value: state, 
      onChanged: (bool s)async{
          state=s;
          if(s==true){
              print("is true");
                         await Future.delayed(Duration(seconds:3));
          initState();
            _bleManager.enableRadio();
          }else{
          print("is false");
          _bleManager.disableRadio();
          }
            }
      )

1 Ответ

1 голос
/ 02 августа 2020

В зависимости от предоставленного кода вам необходимо внести некоторые изменения:

1. Для изменения переменной state вам необходимо вызвать setState, поэтому вместо state=s, используйте это:

setState(() {
  state = s;
  });

2. Не вызывайте initState() внутри функции сборки.

Switch(value: state,
          onChanged: (bool s)async{
            setState(() {
              state = s;
            });
            if (s == true) {
              print("is true");
              await Future.delayed(Duration(seconds:3));
            _bleManager.enableRadio();
            } else{
              print("is false");
            _bleManager.disableRadio();
            }
          }
    ),
...