WiFi:
To work with WiFi, we have a class called WifiManager, which is responsible for doing all WiFi operations.
Steps:
1) Get WifiManager object
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
2) Turn on WiFi by checking if it is not enabled
if(wifiManager.isWifiEnabled()==false){
wifiManager.setWifiEnabled(true);
}else{
Toast.makeText(this, “Already turned on”, Toast.LENGTH_SHORT).show();
}
3) To find available networks, we need to create a local BroadcastReceiver and register it in Activity. So that, whenever a network is identified, the receiver will be automatically notified.
class WifiReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
List<ScanResult> scanResults = wifiManager.getScanResults();
String availableNetworks = “”;
for (ScanResult sr : scanResults) {
availableNetworks = availableNetworks + sr.SSID + “\n”;
}
textView.setText(availableNetworks);
}
}
To register that receiver,
WifiReceiver wifiReceiver = new WifiReceiver();
IntentFilter i = new IntentFilter();
i.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(wifiReceiver, i);
Then, we start discovering networks
wifiManager.startScan();
4) To turn Wifi Off,
if (wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
Note:
To work with WiFi, the following permissions must be declared in manifest
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
<uses-permission android:name=”android.permission.CHANGE_WIFI_STATE”/>
<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION”/>
Create an Android application to work with Wi-Fi