İlk olarak uygulamamıza gerekli paketlerin eklenmesiyle başlıyoruz, altta vereceğim paketleri uygulamamıza ekliyoruz.
paketlerimizi ekledikten sonra internet bağlantısını kontrol ettiğimiz servisimizi aşağıdaki gibi yazıyoruz.
import 'package:connectivity/connectivity.dart'; import 'package:flutter/material.dart'; class InternetConnectionCheckService extends ChangeNotifier { ConnectivityResult _connectivityResult = ConnectivityResult.none; ConnectivityResult get getConnectivity => _connectivityResult; InternetConnectionCheckService(){Connectivity().onConnectivityChanged.listen((event){_connectivityResult = event; notifyListeners(); }); }void initialLoad() async { _connectivityResult = await Connectivity().checkConnectivity(); notifyListeners(); }}
Ardından main.dart dosyamıza geçiş yapıyoruz ve MyApp içerisinde MaterialApp üzerine ChangeNotifierProvider ekliyoruz. Ardından create parametresini aşağıda olduğu gibi düzenliyoruz.
class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context){return ChangeNotifierProvider( create: (context){InternetConnectionCheckService internetConnectionCheckService = InternetConnectionCheckService(); internetConnectionCheckService.initialLoad(); return internetConnectionCheckService; }, child: MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ),home: const HomePage(),),); }}
devamında internet bağlantısını kontrol edeceğimiz kısıma geçiyoruz ve Consumer içerisinde builder’da kontrolünü yapıyoruz. Consumer bize listener özelliği sağlıyor.
class HomePage extends StatelessWidget { const HomePage({super.key}); @override Widget build(BuildContext context){return Scaffold( body: Consumer( builder: (context, InternetConnectionCheckService internetConnectionCheckService, child){if (internetConnectionCheckService.getConnectivity == ConnectivityResult.none){return const Center( child: Text('İnternet Bağlantısı Yok!'),); }else { return const Center( child: Text('İnternet Bağlantısı Var!'),); }}, ),); }}
Uygulamayı yeniden başlattığınızda kontrolünüz yapılıyor olacaktır :)