Plugin Flutter which can handle WiFi connections (AP, STA)
Becareful, some commands as no effect on iOS because Apple don't let us to do whatever we want...
|Enabling / Disabling WiFi module||:warning:(5a)||:x:|
|Getting WiFi status||:white_check_mark:||:x:|
|Scanning for networks, with "already-associated" flag||:white_check_mark:||:x:|
|Connecting / Disconnecting on a network in WPA / WEP||:white_check_mark:(5b)||:white_check_mark:(1)|
|Registering / Unregistering a WiFi network||:white_check_mark:(5c)||:warning:(2)|
|Getting informations like :||:white_check_mark:||:warning:(3)|
|- Current signal strength||:white_check_mark:||:x:|
:white_check_mark:(1) : On iOS, you can only disconnect from a network which has been added by your app. In order to disconnect from a system network, you have to connect to an other!
:warning:(2) : On iOS, you can forget a WiFi network by connecting to it with the joinOnce flag to true!
:warning:(3) : On iOS, you can just getting the SSID, or maybe(probably) I'm missing something!
:question:(4) : I think there is a way to get the IP address but for now, this is not implemented..
:warning:(5): Wifi API changes in Android SDK >= 29, restricts certain behaviour:
- a. Enable/Disable Wifi Module is deprecated and will always fail [docs]. If you want to open "Wifi Setting" in that case then, set the
shouldOpenSettings: truewhen calling
- b. For Connecting to Wifi, WEP security is deprecated and will always fail, also the network will be disconnected when the app is closed (if permanent network is required(Check :warning:(5c)), use "Register Network" feature) [docs)]. By default the connection would not have internet access, to connect to network with internet user
withInternetwhich is a different API underneath (this API will not disconnect to network after app closes) [docs].
- c. Registering Wifi Network, will require user approval - and the network saved would not be controlled by the app (for deletion, updation, etc) [docs];
Additional Wifi protocols on Android side like - Wifi Direct, Wifi Aware, etc are in active discussion at #140. Encourage you to engage if you want this features.
|Getting the status of the Access Point (Disable, disabling, enable, enabling, failed)||:warning:(1b)||:x:|
|Enabling / Disabling Access Point||:white_check_mark:(1c)||:x:|
|Getting / Setting new credentials (SSID / Password)||:warning:(1b)||:x:|
|Enabling / Disabling the visibility of the SSID Access Point||:warning:(1a)||:x:|
|Getting the clients list (IP, BSSID, Device, Reachable)||:warning:(1a)||:x:|
:warning:(1): Wifi API changes in Android SDK 26 and 29, restricts certain behaviour:
- a. This has been deprecated and will always fail for >= 26 Android SDK.
- b. This has been deprecated and will always fail for >= 26 Android SDK. There is a way to make "get" methods work for >= 29 Android SDK, but is currently not implemented, request these features if you need them at #134.
- c. Uses
startLocalOnlyHotspotAPI to request enabling or disabling WiFi AP for >= 29 Android SDK. This can only be used to communicate between co-located devices connected to the created WiFi Hotspot. Note -
- (i) Enabling and Disabling WiFi AP needs to request location permission.
- (ii) The network created by this method will not have Internet access.
- (iii) There's no way for the user to set WiFi AP's SSID and Passphrase, they are automatically generated by the OS.
- (iv) This is actually a "request" and not a "command", as the
LocalOnlyHotspotis shared (potentially) across applications and therefore a request to enable/disable may not not necessarily trigger the immediate execution of it.
For now, there is no way to set the access point on iOS...
Xcode build (iOS >= 8.0)
To be able to build with Xcode, you must specify
use_frameworks! in your Podfile to allow building Swift into static libraries.
Don't hesitate and come here, we will be happy to help you!
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!