Flutter

【Flutter】ネットワーク情報を取得する方法

Flutterアイキャッチ

Flutter アプリを開発していると、この端末は今Wi-Fiに繋がっているのか、モバイルデータ通信中なのか、といったネットワークの種類を判定したい場面があると思います。
この記事では、Flutter で connectivity_plus パッケージを使ったネットワーク回線情報を取得する方法について紹介します!

事前準備

まずは、connectivity_plus パッケージのインストールを行いましょう。

https://pub.dev/packages/connectivity_plus

パッケージのインストール方法の詳細は、以下の記事で紹介していますのでご参照ください。

現在のネットワーク種別を取得

現在のネットワーク種別を取得するには、以下のようにします。

import 'package:connectivity_plus/connectivity_plus.dart';

Future<void> checkNetworkStatus() async {
  final results = await Connectivity().checkConnectivity();
  print("現在の接続状態: $results");
}

Wi-Fi に接続していると、以下のように出力されます。

現在の接続状態: [ConnectivityResult.wifi]

ネットワーク接続の変更をリアルタイムで監視する

ネットワーク接続の変更をリアルタイムで監視するには、以下のようにします。
startListening で監視を開始、stopListening で監視を停止します。

StreamSubscription<List<ConnectivityResult>>? subscription;

void startListening() {
  subscription = Connectivity().onConnectivityChanged.listen((List<ConnectivityResult> results) {
    print("接続状態が変更されました: $results");
  });
}

void stopListening() {
  subscription?.cancel();
}

モバイル通信 OFF の状態で Wi-Fi を ON → Wi-Fi を OFF → モバイル通信を ON にしたときの出力が以下のようになります。

接続状態が変更されました: [ConnectivityResult.wifi]
接続状態が変更されました: [ConnectivityResult.none]
接続状態が変更されました: [ConnectivityResult.mobile]

まとめ

今回は、Flutter で connectivity_plus パッケージ を使ったネットワーク情報の取得方法について紹介しました!

Point

  • connectivity_plus パッケージを使うことで、Flutter で以下のようなネットワーク情報の取得処理を行うことが可能
    • 現在のネットワーク種別の取得
    • ネットワーク接続の変更をリアルタイムで監視

以上で、【Flutter】ネットワーク情報を取得する方法 は終わりです。

おすすめ書籍

    -Flutter