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
?
Asked
Active
Viewed 4.2k times
63

Vadim Kotov
- 8,084
- 8
- 48
- 62

JDroid
- 633
- 1
- 5
- 5
3 Answers
53
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).
-
4So if I use ACCESS_NETWORK_STATE, and check connectivity: if on WiFi will it return online or offline? Do I need to check both? – shkschneider Sep 06 '12 at 16:08
-
3See http://developer.android.com/training/basics/network-ops/managing.html for a useful function (isOnline) that tells whether there is an internet connection at all. – Kevin Whitefoot Dec 16 '14 at 21:14
-
ACCESS_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. – Ben Baron Oct 16 '18 at 15:44
5
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.

Tom el Safadi
- 6,164
- 5
- 49
- 102
0
Network state refers to cellular network connectivity.
Wifi state refers to the state of the phone's Wifi connection.

Justin Niessner
- 242,243
- 40
- 408
- 536
-
7Not exactly, see http://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 Dec 16 '14 at 21:12