import 'package:connectivity_plus/connectivity_plus.dart'; import '../constants/app_enum.dart'; class NetworkService { final Connectivity _connectivity = Connectivity(); Stream watchNetwork() async* { // 初始状态 final initial = await _connectivity.checkConnectivity(); yield _map(initial); // 持续监听 await for (final result in _connectivity.onConnectivityChanged) { yield _map(result); } } NetworkStatus _map(List results) { // 优先返回 wifi,其次是 mobile,最后是 none if (results.contains(ConnectivityResult.wifi)) { return NetworkStatus.wifi; } if (results.contains(ConnectivityResult.mobile)) { return NetworkStatus.mobile; } return NetworkStatus.none; } }