flutter获取网络连接状态

发布时间 2023-11-22 16:56:51作者: 方小川

通过使用插件connectivity可以获取到当前设备是否联网,以及当前的网络类型是WIFI还是移动

 

然后将最新版本添加到 Flutter 项目配置文件中

 获取网络类型

  //获取网络类型
  String _netType;

  void isConnectedType() async {
    //获取网络连接类型
    var connectivityResult = await (Connectivity().checkConnectivity());
    
    if (connectivityResult == ConnectivityResult.mobile) {
      // 网络类型为移动网络
      _netType = "4G";
    } else if (connectivityResult == ConnectivityResult.wifi) {
      // 网络类型为WIFI
      _netType = "WIFI";
    }else{
      _netType = "未联接";
    }
    setState(() {});
  }

获取是否联网

//判断是否联网
  Future<bool> isConnected() async {
    var connectivityResult = await (Connectivity().checkConnectivity());
    return connectivityResult != ConnectivityResult.none;
  }

当联网状态有变化时,还能监听是否断开网络

  //添加网络切换监听 
  connectLiserner() async {
    //获取Stream
    Stream<ConnectivityResult> resultStream =
        Connectivity().onConnectivityChanged;
    //添加监听
    resultStream.listen((event) {
      //
    });
  }