To detect if a WiFi connection is available in Android, we can use the ConnectivityManager and NetworkCapabilities classes, which are more modern and recommended for newer versions of Android. This approach allows us to efficiently check the network status and is essential for applications that rely on internet connectivity.
We can create a static method checkWifiStatus() that returns a boolean value true if WiFi is available. This method can be reused across different parts of the application, ensuring a consistent way to check the WiFi status.
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.net.ConnectivityManager;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
boolean isWifiConnected = checkWifiStatus(this);
Toast.makeText(MainActivity.this, "WiFi connected: " + isWifiConnected, Toast.LENGTH_SHORT).show();
}
public static boolean checkWifiStatus(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connManager != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
NetworkCapabilities capabilities = connManager.getNetworkCapabilities(connManager.getActiveNetwork());
return capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
} else {
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return networkInfo != null && networkInfo.isConnected();
}
}
return false; // Return false if ConnectivityManager is null or no WiFi connection is found
}
}
You need to pass the Context if you have this method in other classes. This ensures that the method can access the system services required to check the network status.
fun checkWifiStatus(context: Context): Boolean {
val connManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val capabilities = connManager.getNetworkCapabilities(connManager.activeNetwork)
capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
} else {
val networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
networkInfo != null && networkInfo.isConnected
}
}
Provide Feedback For This Article
We take your feedback seriously and use it to improve our content. Thank you for helping us serve you better!
😊 Thanks for your time, your feedback has been registered!
Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!