5 ms·
Android apps used to need "location" access for bluetooth discovery. https://www.androidpolice.com/2021/05/19/android-12-apps-wont-ask-for-location-permissions-
by niij 3y ago
Android apps used to need "location" access for bluetooth discovery. https://www.androidpolice.com/2021/05/19/android-12-apps-wont-ask-for-location-permissions-when-all-they-want-is-bluetooth-scanning-which-yes-was-a-thing/ https://www.androidpolice.com/2021/05/19/android-12-apps-won...
- netsharc 3y agoBecause your location can be inferred by finding which Bluetooth devices are around you, as that article says... > See, back in Android 6 Marshmallow, Google changed things so that apps needed location permissions to scan for Bluetooth devices. At the time, the rationale was that Bluetooth was going to be used for things like interior navigation or location tracking in a more abstract sense, and your location could indirectly be inferred via Bluetooth scanning alone if a given hardware identifier was tied to a specific location.
- rightbyte 3y agoI have always assumed that is a way for Google to normalize granting the position permission. You could "pair" apps with devices if Bluetooth position spyware was a concern.
- GauntletWizard 3y agoBefore Android required that permission, there were marketing companies selling malls the ability to see who was around by the ID of their Bluetooth beacon.
- folmar 3y agoBut pairing work well without the app involved, we could just give a permission to a specific already-paired devices and keep location for apps that actually need to scan.
- GauntletWizard 3y agoAgain - That still sends out a beacon. Searching for already-paired bluetooth devices still sends a bluetooth frame with your bluetooth MAC address, (which has to be consistent, because that's how bluetooth devices identify each other).
- thaumasiotes 3y ago> Searching for already-paired bluetooth devices still sends a bluetooth frame with your bluetooth MAC address, (which has to be consistent, because that's how bluetooth devices identify each other). It doesn't have to be readable by third parties. Given that the devices are already paired, it's perfectly feasible for that frame to be encrypted gibberish that only the other device can understand.
- GauntletWizard 3y agoI think that the math of battery life if you had to decrypt anything that looked like a handshake packet to see if it's for you is the opposite of feasible.
- Larrikin 3y agoThe other poster already explained the old permission. There's also a new permission specifically for Bluetooth LE now as well for newer devices so location shouldn't be needed.
- radlad 3y agoHowever, scanning and connecting to Wi-Fi IoT devices still requires it.
- izacus 3y agoNo it doesn't, there's a whole API for last few years where app can connect to its own IoT device without getting location or full scanning grant.
- radlad 3y agoWhy do you think that? I literally just wrote an app to do this. From my notes: > Android 13 still requires `ACCESS_FINE_LOCATION` to call `startScan()` and `getScanResults()` - `NEARBY_WIFI_DEVICES` is not sufficient See here: https://developer.android.com/reference/android/net/wifi/WifiManager#getScanResults https://developer.android.com/reference/android/net/wifi/Wif...() I tried getting by without it, but it was required.
- Larrikin 3y agoThat poster I assume is referring to this for your own devices. https://developer.android.com/guide/topics/connectivity/companion-device-pairing https://developer.android.com/guide/topics/connectivity/comp.... Depends on the specific use case but you ideally shouldn't need those calls. Our app request both the old location permission and the new nearby permission just because not all of our vendors keep their libraries up to date and its not unreasonable for the app to know where you are when using those features.
- radlad 3y ago