Flutterでネットワーク周りの情報を取得したいなと思ったときに、
いろいろ調べたときの備忘録。
取得したい情報によってパッケージが違うっぽい。
- インターネットへの接続状況 ... connectivity_plus
- Wifiなどの情報 ... network_info_plus
connectivity_plus
オフラインかどうかなどをチェックしただけであれば、これでOK。
・ connectivity_plus | Flutter Package
import 'package:connectivity_plus/connectivity_plus.dart'; var connectivityResult = await (Connectivity().checkConnectivity()); if (connectivityResult == ConnectivityResult.mobile) { // I am connected to a mobile network. } else if (connectivityResult == ConnectivityResult.wifi) { // I am connected to a wifi network. }
状態が変化を監視することもできる。
import 'package:connectivity_plus/connectivity_plus.dart'; @override initState() { super.initState(); subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { // Got a new connectivity status! }) } // Be sure to cancel subscription after you are done @override dispose() { super.dispose(); subscription.cancel(); }
network_info_plus
Wifiの細かい情報を取得したい場合はこれ。
・network_info_plus | Flutter Package
import 'package:network_info_plus/network_info_plus.dart'; final info = NetworkInfo(); var wifiName = await info.getWifiName(); // FooNetwork var wifiBSSID = await info.getWifiBSSID(); // 11:22:33:44:55:66 var wifiIP = await info.getWifiIP(); // 192.168.1.43 var wifiIPv6 = await info.getWifiIPv6(); // 2001:0db8:85a3:0000:0000:8a2e:0370:7334 var wifiSubmask = await info.getWifiSubmask(); // 255.255.255.0 var wifiBroadcast = await info.getWifiBroadcast(); // 192.168.1.255 var wifiGateway = await info.getWifiGatewayIP(); // 192.168.1.1
それぞれ、permissionとかの設定や条件などもあるので注意。
以上!!