I tried to explain the problem in this gif

Basically, this test application gets the intent βRSSI_CHANGEDβ and displays the scan results on the screen.
Scan results are always empty, unless GPS is turned on.
I think my question is why?
To access the hardware IDs of neighboring external devices via Bluetooth and Wi-Fi scanning, your application must now have ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permissions
I have "ACCESS_COARSE_LOCATION"
source share