network_info_plusとは
network_info_plus
はFlutterアプリケーションがネットワーク情報を取得し、それに基づいて設定を行うためのプラグインです。
Wi-Fi関連の情報(SSID、BSSID、IPアドレスなど)を簡単に取得することができます。

network_info_plus | Flutter package
Flutter plugin for discovering information (e.g. WiFi details) of the network.
使い方
インストール方法
まず、pubspec.yaml
ファイルに以下の依存関係を追加します。
dependencies:
network_info_plus: ^5.0.3
基本的な使用方法
以下のコードは、Wi-Fiに関する情報を取得する基本的な使用例です。
import 'package:network_info_plus/network_info_plus.dart';
void main() async {
final info = NetworkInfo();
final wifiName = await info.getWifiName(); // "FooNetwork"
final wifiBSSID = await info.getWifiBSSID(); // 11:22:33:44:55:66
final wifiIP = await info.getWifiIP(); // 192.168.1.43
final wifiIPv6 = await info.getWifiIPv6(); // 2001:0db8:85a3:0000:0000:8a2e:0370:7334
final wifiSubmask = await info.getWifiSubmask(); // 255.255.255.0
final wifiBroadcast = await info.getWifiBroadcast(); // 192.168.1.255
final wifiGateway = await info.getWifiGatewayIP(); // 192.168.1.1
}
パーミッション設定
Wi-Fi関連の情報を取得するためには、デバイスの位置情報へのアクセス許可が必要です。以下のようにpermission_handler
パッケージを使用してパーミッションをリクエストします。
import 'package:permission_handler/permission_handler.dart';
void main() async {
if (await Permission.location.request().isGranted) {
// パーミッションが許可された場合にWi-Fi情報を取得
final info = NetworkInfo();
final wifiName = await info.getWifiName();
// 他のWi-Fi情報の取得処理
} else {
// パーミッションが拒否された場合の処理
}
}
Androidでのパーミッション設定
AndroidでWi-Fi情報を取得するためには、以下のパーミッションをAndroidManifest.xml
に追加します。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
iOSでのパーミッション設定
iOSでWi-Fi情報を取得するためには、Info.plist
に以下のキーを追加します。
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>アプリが常に位置情報を利用する理由を説明してください</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>アプリが前面で実行中に位置情報を利用する理由を説明してください</string>
<key>com.apple.developer.networking.wifi-info</key>
<true/>
さらに、iOS 14以降では、NEHotspotNetwork.fetchCurrentWithCompletionHandler
メソッドを使用してWi-Fi情報を取得します。これには以下の条件のいずれかを満たす必要があります:
- CoreLocation APIを使用し、正確な位置情報へのアクセス許可があること。
- NEHotspotConfiguration APIを使用して現在のWi-Fiネットワークを構成していること。
- アクティブなVPN設定がインストールされていること。
- アクティブなNEDNSSettingsManager設定がインストールされていること。
これらの条件を満たさない場合、Wi-Fi情報は取得できません。