Why is location service required?
To use Bluetooth features in your application, you must declare two permissions. The first of these is BLUETOOTH. You need this permission to perform any Bluetooth communication, such as requesting a connection, accepting a connection, and transferring data.
The other permission that you must declare is either ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION. Location permission is required because Bluetooth scans can be used to gather information about the location of the user. This information may come from the user's own devices, as well as Bluetooth beacons in use at locations such as shops and transit facilities.
For more details, please refer to https://developer.android.com/guide/topics/connectivity/bluetooth.