Luís Rigoni
Luís Rigoni

Reputation: 374

Is possible to programmatically connect to Wi-Fi network using Xamarin?

Using Xamarin.iOS and Xamarin.Android, it is possible to check if the Wi-Fi is enabled? And, if is disabled, it's possible to enable it? Once it's enabled, how to search and connect to a network?

Upvotes: 3

Views: 8010

Answers (1)

SushiHangover
SushiHangover

Reputation: 74209

Enable/Disable Wifi:

WifiManager wifiManager = (WifiManager)GetSystemService(WifiService);
if (!wifiManager.IsWifiEnabled)
    wifiManager.SetWifiEnabled(true);
else 
    wifiManager.SetWifiEnabled(false);

Permission to change Wifi state:

android.permission.CHANGE_WIFI_STATE

Add a network:

var networkSSID = "Stack";
var networkPass = "Overflow";
var config = new WifiConfiguration();
config.Ssid = '"' + networkSSID + '"';

// For WPA/WPA2, WEP is different (still using WEP? shame on you ;-)
config.PreSharedKey = '"' + networkPass + '"';
wifiManager.AddNetwork(config);

Connect to a network:

IList<WifiConfiguration> myWifi = wifiManager.ConfiguredNetworks;
wifiManager.Disconnect();
wifiManager.EnableNetwork(myWifi.FindFirst(x => x.Ssid.Contains(networkSSID)), true);
wifiManager.Reconnect();

Upvotes: 10

Related Questions