What's the difference between access network state (ACCESS_NETWORK_STATE) and WIFI state (ACCESS_WIFI_STATE) permissions?

In Permissions tab of Android Manifest, in the drop down there are options called android.permission.ACCESS_NETWORK_STATE and android.permission.ACCESS_WIFI_STATE. What is the difference between them? Is ACCESS_NETWORK_STATE more generalized than ACCESS_WIFI_STATE?


android.permission.ACCESS_NETWORK_STATE is needed for accessing ConnectivityManager (mainly for monitoring network connections in general), while android.permission.ACCESS_WIFI_STATE grants access to WifiManager (for managing all aspects of Wi-Fi connectivity in particular).


ACCESS_NETWORK_STATE is required to check if you are connected to a network, it does not matter of what type it is (Wi-Fi, GPRS, UMTS, etc.).

ACCESS_WIFI_STATE is not required to prope for internet connections.

To answer most of the questions, yes you don’t need the ACCESS_WIFI_STATE if merely checking for connectivity.