Why does the app require location permission for wifi signal?

One less obvious thing about apps showing wifi networks in the neighbourhood is that the list of the networks is unique for the given area and can be used to determine user's location. There are online databases with a huge number of access points and their locations created by apps which have access to GPS. Apps which only have access to the surrounding wifi networks and no direct access to GPS or location can then use these databases to get coordinates of users with about 20m precision. For instance, one of such databases is here:

https://wigle.net

This means that any app that is able to show surrounding wifi networks may know your location.

Originally, the Android system didn't protect access to the wifi information at all so apps could access it without any restriction (and so they could get user's location without users knowing about it). In recent Android releases, Google has been making progress to protect this sensitive information:

  • Since Android 9, apps are required to have the ACCESS_COARSE_LOCATION permission
  • Since Android 10, apps are required to have the ACCESS_FINE_LOCATION permission

For more details, have a look at the official Android documentation here:

https://developer.android.com/guide/topics/connectivity/wifi-scan#wifi-scan-permissions