Add following plugins in pubspec.yaml file:
connectivity: ^3.0.3
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:connectivity/connectivity.dart';
void main() {
runApp(MaterialApp(
home: MyConnection(),
title: "Connectivity",
));
}
class MyConnection extends StatefulWidget {
@override
_MyConnectionState createState() => _MyConnectionState();
}
class _MyConnectionState extends State<MyConnection> {
String status = "";
var subs;
bool isConn = false;
Connectivity connectivityResult = Connectivity();
@override
initState() {
super.initState();
subs = connectivityResult.onConnectivityChanged
.listen((ConnectivityResult result) {
setState(() {
if (result == ConnectivityResult.mobile) {
status = "Mobile Network Used";
isConn = false;
} else if (result == ConnectivityResult.wifi) {
status = "Wifi Network Used";
isConn = false;
} else if (result == ConnectivityResult.none) {
status = "No Internet Used";
isConn = true;
}
});
});
}
@override
dispose() {
super.dispose();
subs.cancel();
}
@override
Widget build(BuildContext context) {
//checkInternet().then((value) => status = value);
return Scaffold(
appBar: AppBar(
title: Text("Connection State"),
),
body: Container(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CircleAvatar(
radius: 100,
backgroundColor: Colors.redAccent,
child: CircleAvatar(
radius: 95,
backgroundColor: (isConn) ? Colors.red : Colors.green,
child: (isConn)
? Icon(
Icons.wifi_off,
size: 100,
)
: Icon(
Icons.wifi,
size: 100,
),
),
),
SizedBox(
height: 10,
),
Text(
"$status",
style: TextStyle(fontSize: 30),
),
],
),
),
),
);
}
}


No comments:
Post a Comment