![](/img/trans.png)
[英]How to get the wifi name(SSID) of the currently connected wifi in Flutter
[英]Flutter how to check if WIFI is turned on (connected or not it doesn't matter)?
Flutter如何查看設備是否開啟了WIFI? 我能找到的只是如何檢查是否存在連接,但我應該如何檢查 WIFI 本身是否已打開,而不是是否有連接?
您可以在下面復制粘貼運行完整代碼
您可以使用 package https://pub.dev/packages/wifi_configuration_2
它有isWifiEnabled()
和checkConnection()
將以下權限添加到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" />
代碼片段
void checkConnection() async {
wifiConfiguration.isWifiEnabled().then((value) {
print('Is wifi enabled: ${value.toString()}');
});
wifiConfiguration.checkConnection().then((value) {
print('Value: ${value.toString()}');
});
工作演示
完整代碼
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.