Apps no longer need your location to scan for nearby Bluetooth devices on Android 12
Google keeps improving privacy and regulating the way apps use permissions with each Android release, and Android 12 brings a healthy dose of these changes as well. Yesterday, during the main Google I/O 2021 keynote, features like Privacy Dashboard, camera/microphone usage icons in the notification bar, and much more were shown off. But there are also a bunch of smaller changes to ensure apps only use the permissions they need, whenever they need to use them, and not have access to anything they don’t need. One of those changes is pretty minor, but an important step: Now, apps no longer need to ask for the location permission to keep track of a nearby Bluetooth device.
This is probably a weird one, and you might ask yourself: Why is the location permission needed for scanning nearby Bluetooth devices? Basically, before Android 12, the ability to scan for nearby Bluetooth or Wi-Fi devices were tied to Android’s broader “location” permission. The reason this was the case makes sense: You can definitely track a device by inferring what Bluetooth devices or Wi-Fi networks are nearby or are currently connected. So even if an app just scans for Bluetooth devices and doesn’t utilize GPS or other tracking technologies, it still needed the same Location permission nonetheless.
However, this led to unforeseen consequences when due to misunderstandings from users. When Bluetooth-based COVID-19 contact tracing apps were being developed, these location permission prompts led many users to accuse these apps of tracking your location, which is why Google made an exception for those apps in Android 11 so they no longer had to ask for the location permission in order to use the contact tracing API.
Now in Android 12, Google has added a new BLUETOOTH_SCAN and BLUETOOTH_CONNECT permission, which are dedicated permissions distinct from the location permissions that apps can request. After being granted these permissions, an app can scan for nearby devices without also requesting the location permission. Only apps targeting Android 12 can declare these permissions, however.
This is important as not only can users be more confident while granting permissions to an app, but it also avoids these apps getting permission to locate your phone—something that they can do if the location permission is granted.