Search code examples
iosflutterwificonnectivity

Flutter IOS reading wifi name using the connectivity or wifi plugin


This question is similar this question, but slightly different.

I am trying to retrieve the name of my currently connected wifi network using the Connectivity Plugin.

This answer works perfectly fine in android, and while it sounds like it should work for iOS, I am getting an exception:

PlatformException(UNAVAILABLE, wifi name unavailable, null)

Simple ex. of the code causing the exception (with the assumption I am connected to wifi, also not using an emulator):

Connectivity connectivity = Connectivity();
print(await (connectivity.getWifiName()));

My gut is telling me it may be permission related, but honestly I am not sure.

Cheers and thanks!

Edit:

I just realized, the exception above is thrown by the wifi plugin, which I was also experimenting with.

print(await (Wifi.ssid));

Connectivity simply returns null...


Solution

  • I'll see if I can fix that in the plugin's code. If so, I'll get back to this answer.

    However, for now, adding the capability to your project (or simply switching it ON) on Xcode will do it: (no code change in your app required)

    # on your project folder, run:
    open -a xcode ./ios
    

    In Xcode 12+

    On Target > Runner > Signing & Capabilities, use the + Capability button to add the Access WiFi Information capability to your project.

    adding capability

    In older Xcode versions

    On Runner > Capabilities, switch Access WiFi Information to on.

    See:

    switching WiFi information ON