【发布时间】:2021-11-16 06:49:53
【问题描述】:
我有一个类正在使用 connectivity 包检查网络连接,然后如果有网络连接,它正在使用 InternetAddress.lookup 检查互联网是否可用
问题是连接包正在工作!并且检测到 Wi-Fi 和移动连接,但 InternetAddress.lookup 总是返回 true !即使没有互联网!
完整的课程代码:
import 'dart:io';
import 'dart:async';
import 'package:connectivity/connectivity.dart';
class ConnectionStatusSingleton {
static Future<bool> checkConnection() async {
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
try {
final result = await InternetAddress.lookup('example.com');
var res = result.isNotEmpty && result[0].rawAddress.isNotEmpty;
return res;
} on SocketException catch (_) {
return false;
}
} else if (connectivityResult == ConnectivityResult.wifi) {
try {
final result = await InternetAddress.lookup('example.com');
var res = result.isNotEmpty && result[0].rawAddress.isNotEmpty;
return res;
} on SocketException catch (_) {
return false;
}
} else {
return false;
}
}
}
我使用 :
调用它 bool connectionState = await ConnectionStatusSingleton.checkConnection();
【问题讨论】: