WiFiFlutter

pub.dev All Contributors pub points popularity likes analysis GitHub issues GitHub stars GitHub forks

Introduction

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...

WiFi connections

DescriptionAndroidiOS
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)
- SSID:white_check_mark::white_check_mark:
- BSSID:white_check_mark::white_check_mark:
- Current signal strength:white_check_mark::x:
- Frequency:white_check_mark::x:
- IP:white_check_mark::question:(4)

: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: true when calling setEnabled.
  • 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 withInternet which 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.

Access Point

DescriptionAndroidiOS
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 startLocalOnlyHotspot API 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 LocalOnlyHotspot is 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.

Troubleshooting

Don't hesitate and come here, we will be happy to help you!

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Florian

πŸ€” πŸ’» πŸ“– πŸ’‘ πŸ‘€

yhua537

πŸ’»

Anhar Ismail

🎨

Tristan Linnell

πŸ›

Patrick Boos

πŸ’» πŸ’‘

SΓ©bastien Faye

πŸ’»

Ben Hagen

πŸ› πŸ’»

Vá Ngọc Minh

πŸ›

Cesar Sanz

πŸ› πŸ’»

Kvikk

πŸ’»

Bob

πŸ› πŸ’»

Richard Tarnoczi

πŸ›

Matthijs Meulenbrug

πŸ›

Crifan Li

πŸ› πŸ’»

Julien Robert

πŸ’» πŸ’‘ πŸ“–

Nicolas Juelle

πŸ› πŸ’» πŸ“–

Niek van der Maas

πŸ› πŸ‘€ πŸ’»

Nicolas B

πŸ›

Harsh Bhikadia

πŸ’» πŸ‘€ 🚧 πŸ“– πŸ€”

Josip Krnjic

πŸ›

Conner Aldrich

πŸ›

Pierre Rossinès

πŸ’»

andzejsw

πŸ›

Sanjay Sah

πŸ›

Dreamwalker

πŸ›

Kriss_Frost

πŸ›

Binh Do D.

πŸ›

Quan Nguyen H. VN.Danang

πŸ’»

Guy Luz

πŸ›

yurir

πŸ›

BillMac4440

πŸ› πŸ‘€

Federico Pellegrin

πŸ’» πŸ‘€ πŸ› πŸ“–

Diego Tori

πŸ‘€

IskanderA1

πŸ’»

EgHubs

πŸ›

Maverick G. Fabroa

πŸ’» πŸ’‘ πŸ“– πŸ‘€

Benoit Duffez

πŸ›

Justin DeSimpliciis

πŸ’»

Dominik Starke

πŸ›

FelixSmart

πŸ›

Brian Semrau

πŸ›

This project follows the all-contributors specification. Contributions of any kind welcome!

Libraries

wifi_iot