Ошибка указывает на то, что метод _updateConnectionStatus рассматривается так, как будто он возвращает List<ConnectivityResult>, что неверно. Метод _updateConnectionStatus возвращает ConnectivityResul, указывающий текущий статус подключения.
Кажется, в сигнатуре метода _updateConnectionStatus есть недоразумение.
late StreamSubscription subscription;
StreamSubscription<ConnectivityResult>? connectivitySubscription;
StreamSubscription? internetSubscription;
bool hasInternet = false;
@override
void initState(){
super.initState();
subscription = Connectivity().onConnectivityChanged.listen(_updateConnectionStatus);
internetSubscription = InternetConnectionChecker().onStatusChange.listen((status) {
final hasInternet = status == InternetConnectionStatus.connected;
setState(() => this.hasInternet = hasInternet);
});
}
@override
void dispose() {
// Cancel the connectivity subscription when the controller is closed
connectivitySubscription?.cancel();
super.dispose();
}
void _updateConnectionStatus (ConnectivityResult result) {
final hasInternet = result != ConnectivityResult.none;
final message = hasInternet
? result == ConnectivityResult.mobile
? 'You are connected to mopile network'
: 'You are connected to mopile network'
: 'You have no internet';
// Only check for the none case, which indicates no connectivity
if (!hasInternet) {
Get.rawSnackbar(
messageText: Text('PLEASE CONNECT TO THE INTERNET $message',
style: const TextStyle(color: Colors.white, fontSize: 14)),
isDismissible: false,
duration: const Duration(days: 1),
backgroundColor: Colors.red[400]!,
icon: const Icon(
Icons.wifi_off,
color: Colors.white,
size: 35,
),
snackStyle: SnackStyle.GROUNDED);
} else {
if (Get.isSnackbarOpen) {
Get.closeCurrentSnackbar();
}
}
}
@DhafinRayhan, потому что я изо всех сил старался найти решение, я несколько раз менял код. Теперь я отредактировал описание, чтобы оно соответствовало прикрепленному коду.





Сообщение об ошибке верное. Вы передаете свой метод _updateConnectionStatus, который принимает ConnectivityResult в качестве параметра, в обратный вызов listenonConnectivityChanged, который представляет собой поток List<ConnectivityResult>.
В предыдущих версиях пакета connection_plus поток onConnectivityChanged излучал ConnectivityResult, в котором ему можно было передать ваш метод. Однако обновление 6.0.x внесло некоторые критические изменения, одно из них заключается в том, что поток onConnectivityChanged теперь вместо этого излучает List<ConnectivityResult>.
Вы можете либо понизить версию пакета Connection_plus до 5.x.x, либо адаптировать свой метод _updateConnectionStatus, чтобы он принимал List<ConnectivityResult> в качестве параметра.
Где
checkConnectivityв вашем коде?