[英]Flutter how to check if WIFI is turned on (connected or not it doesn't matter)?
How do I check if the device has it's WIFI turned on in Flutter? Flutter如何查看设备是否开启了WIFI? All that I can find is how to check if a connection is present but how should i check if the WIFI itself is turned on but not if there is connection or not?我能找到的只是如何检查是否存在连接,但我应该如何检查 WIFI 本身是否已打开,而不是是否有连接?
You can copy paste run full code below您可以在下面复制粘贴运行完整代码
You can use package https://pub.dev/packages/wifi_configuration_2您可以使用 package https://pub.dev/packages/wifi_configuration_2
It has isWifiEnabled()
and checkConnection()
它有isWifiEnabled()
和checkConnection()
Add the following permission to AndroidManifest.xml
将以下权限添加到AndroidManifest.xml
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.wifi" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
code snippet代码片段
void checkConnection() async {
wifiConfiguration.isWifiEnabled().then((value) {
print('Is wifi enabled: ${value.toString()}');
});
wifiConfiguration.checkConnection().then((value) {
print('Value: ${value.toString()}');
});
working demo工作演示
full code完整代码
import 'package:flutter/material.dart';
import 'package:wifi_configuration_2/wifi_configuration_2.dart';
WifiConfiguration wifiConfiguration;
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
//enum wifiStatus {
// conected,
//alreadyConnected,.
//notConnected ,
//platformNotSupported,
//profileAlreadyInstalled,
//
//}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
List<WifiNetwork> wifiNetworkList = List();
bool isLoaded = false;
@override
void initState() {
super.initState();
wifiConfiguration = WifiConfiguration();
//getConnectionState();
checkConnection();
}
void getConnectionState() async {
WifiConnectionStatus connectionStatus =
await wifiConfiguration.connectToWifi(
"DarkBe@rs", "DarkBe@rs", "com.example.wifi_configuration_example");
print("is Connected : ${connectionStatus}");
//
//
switch (connectionStatus) {
case WifiConnectionStatus.connected:
print("connected");
break;
case WifiConnectionStatus.alreadyConnected:
print("alreadyConnected");
break;
case WifiConnectionStatus.notConnected:
print("notConnected");
break;
case WifiConnectionStatus.platformNotSupported:
print("platformNotSupported");
break;
case WifiConnectionStatus.profileAlreadyInstalled:
print("profileAlreadyInstalled");
break;
case WifiConnectionStatus.locationNotAllowed:
print("locationNotAllowed");
break;
}
//
// bool isConnected = await WifiConfiguration.isConnectedToWifi("DBWSN5");
// String connectionState = await WifiConfiguration.connectedToWifi();
// print("coneection status ${connectionState}");
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: wifiNetworkList.isEmpty && isLoaded
? Center(
child: FlatButton(
color: Colors.red,
child: Text("connect"),
onPressed: () async {
WifiConnectionObject connectionStatus =
await wifiConfiguration.connectedToWifi();
print("Ip address : ${connectionStatus.ip}");
wifiConfiguration.getConnectionType().then((value) {
print('Connection type: ${value.toString()}');
});
wifiConfiguration.isConnectionFast().then((value) {
print('Is connection fast: ${value.toString()}');
});
},
),
)
: Column(
children: <Widget>[
FlatButton(
onPressed: () {
WifiConfiguration wifiConfiguration = WifiConfiguration();
wifiConfiguration.enableWifi();
},
child: Text('Wifi enable')),
FlatButton(
onPressed: () {
WifiConfiguration wifiConfiguration = WifiConfiguration();
wifiConfiguration.disableWifi();
},
child: Text('Wifi disable')),
FlatButton(
onPressed: () {
wifiConfiguration.getConnectionType().then((value) {
print('Connection type: ${value.toString()}');
});
wifiConfiguration.isConnectionFast().then((value) {
print('Connection type: ${value.toString()}');
});
},
child: Text('Print information')),
Divider(),
Expanded(
child: ListView.builder(
itemBuilder: (context, index) {
WifiNetwork wifiNetwork = wifiNetworkList[index];
return ListTile(
leading: Text(wifiNetwork.signalLevel),
title: Text(wifiNetwork.ssid),
subtitle: Text(wifiNetwork.bssid),
);
},
itemCount: wifiNetworkList.length,
),
),
],
),
),
);
}
void checkConnection() async {
wifiConfiguration.isWifiEnabled().then((value) {
print('Is wifi enabled: ${value.toString()}');
});
wifiConfiguration.checkConnection().then((value) {
print('Value: ${value.toString()}');
});
WifiConnectionObject wifiConnectionObject =
await wifiConfiguration.connectedToWifi();
if (wifiConnectionObject != null) {
getWifiList();
}
}
Future<void> getWifiList() async {
wifiNetworkList = await wifiConfiguration.getWifiList();
print('Network list lenght: ${wifiNetworkList.length.toString()}');
setState(() {});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.