くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Flutterで通信状況の情報を取得する(connectivity_plus/network_info_plus)

Flutterでネットワーク周りの情報を取得したいなと思ったときに、
いろいろ調べたときの備忘録。

取得したい情報によってパッケージが違うっぽい。

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とかの設定や条件などもあるので注意。

以上!!

参考にしたサイトさま