用到的库:
用于发现网络信息(例如 WiFi 详细信息)的 Flutter 插件。
Flutter 的权限插件。此插件提供跨平台(iOS、Android)API 来请求和检查权限。
使用说明:
安卓
从 Android 1O 开始,要成功获取 WiFi 名称或 Wi-Fi BSSID,请确保满足以下所有条件:
- 如果您的应用以 Android 10(API 级别 29)SDK 或更高版本为目标,则您的应用需要具有 ACCESS_FINE_LOCATION 权限。
- 如果您的应用的目标 SDK 低于 Android 10(API 级别 29),您的应用需要具有 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 权限。
- 设备上启用了位置服务(在“设置”>“位置”下)。
- 如果您使用搭载 Android 12(API 级别 31)及更高版本的设备,请确保您的应用具有 ACCESS_NETWORK_STATE 权限。
笔记
默认情况下,此包不提供 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 权限
使用:
//请求位置权限
var status = await Permission.location.status;
if (!status.isGranted) {
await Permission.location.request();
}
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