What's the difference between ACCESS_NETWORK_STATE and INTERNET?

Mageek picture Mageek · Oct 28, 2013 · Viewed 26.5k times · Source

What's the difference between ACCESS_NETWORK_STATE and INTERNET?

If I use INTERNET, is it necessary to use ACCESS_NETWORK_STATE?

In other words, can I use INTERNET without using ACCESS_NETWORK_STATE?

Answer

Bryan Herbst picture Bryan Herbst · Oct 28, 2013

From the documentation:

ACCESS_NETWORK_STATE:

Allows applications to access information about networks

INTERNET:

Allows applications to open network sockets.

In short, the INTERNET permission lets you use the internet, whereas ACCESS_NETWORK_STATE will just give you information about the network, such as whether you are connected to a network at all.

You can use either one without needing the other. If you don't check that you have a valid network connection before trying to use the Internet, your HTTP requests will simply fail.