如何使用ble manager关闭蓝牙?

时间:2020-08-02 20:12:45

标签: flutter dart

我正在使用ble manager来打开和关闭蓝牙,但是当我移动开关时,它仍处于初始状态,并且不执行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 个答案:

答案 0 :(得分:1)

根据提供的代码,您需要进行一些更改:

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();
            }
          }
    ),