What's the difference between access network state (ACCESS_NETWORK_STATE) and WIFI state (ACCESS_WIFI_STATE) permissions?
Solution 1
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).
Solution 2
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.
Admin
Updated on April 13, 2020Comments
-
Admin about 4 years
In Permissions tab of Android Manifest, in the drop down there are options called
android.permission.ACCESS_NETWORK_STATE
andandroid.permission.ACCESS_WIFI_STATE
. What is the difference between them? IsACCESS_NETWORK_STATE
more generalized thanACCESS_WIFI_STATE
? -
shkschneider over 11 yearsSo if I use ACCESS_NETWORK_STATE, and check connectivity: if on WiFi will it return online or offline? Do I need to check both?
-
Kevin Whitefoot over 9 yearsNot exactly, see developer.android.com/training/basics/network-ops/managing.html where it uses 'network status' to refer to any internet connection regardless of type. It distinguishes between ConnectivityManager.TYPE_MOBILE and ConnectivityManager.TYPE_WIFI. It even gives example code for useful function (isOnline) that tells whether there is an internet connection at all.
-
Kevin Whitefoot over 9 yearsSee developer.android.com/training/basics/network-ops/managing.html for a useful function (isOnline) that tells whether there is an internet connection at all.
-
Ben Baron over 5 yearsACCESS_NETWORK_STATE can be used to check the general network state (i.e. connecting, connected) even if it's Wifi by using the ConnectivityManager's
getActiveNetworkInfo()
method.