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