An iOS 14 feature that has gone a bit under the radar is the Precise Location toggle for Location Services. This new toggle gives the user more control over which apps can access your current location, and to what granularity.
Before iOS 14, you could grant an app access to your location whilst using the app, or always. However, if location access was allowed, the app would always get an exact coordinate. A lot of apps don’t actually need such precise location information, and iOS 14 offers that flexibility, including asking the user upfront in the permissions dialog.
Whilst navigation apps require exact location in order to function, many classes of applications do not need GPS-level positioning. For instance, a weather app only needs to know your current state or city to provide current location weather. This was a feature we asked for back in 2018.
In its WWDC session, Apple used the example of the TV app. Streaming services have different content rights for each region, so the app needs to know the user’s location in order to show content that the user is legally allowed to watch. However, it doesn’t need exact coordinates to do this. So, in iOS 14, the TV app only requests high-level regional location data.
iOS 14 includes APIs that allow apps to declare that they only need ‘reduced accuracy’ location, so diligent app developers can only collect the minimum amount of information they need. However, iOS 14 also lets the user decide for every app if full access is actually necessary.
How to choose approximate or exact location permission?
The new Location Services permissions prompt includes a ‘Precise’ toggle button in the map sheet. In most cases, this will default to being enabled. The map will show a precise tracking dot to reflect this. If you don’t want the current app to be able to get exact location information, simply tap the toggle to off. The map preview will show a wide circular region, representative of the approximate location information that will be available to the app.
You can also change this preference at any time in Settings -> Privacy -> Location Services. Select the app name and then change the Precise Location switch to on or off, as desired. For apps that you granted location permissions prior to iOS 14, they will get full access automatically. So if you want to rein something in, this is how to do it.
How does iOS provide approximate location to apps?
Reduced accuracy location information is designed to be useful, and privacy-preserving. A naive implementation would simply mask the user’s current location with some random noise. iOS 14 is much smarter than that.
Instead, Location Services will expose circular regions that are a few miles in diameter. The region data will only be recomputed a few times per hour, so exact tracking is not possible. The user’s true location will be somewhere inside the circular region, but not necessarily in the center.
The system is intelligent enough to provide location results that make sense to humans. For instance, if you are driving near the border of two states, the approximate location region will be fully inside the current state you are in. This means a weather app will always be able to show relevant local forecasts, without ever knowing exactly where you are.
Similarly, the radius of the approximate location regions will vary based on context. If the user is driving through a dense area of multiple cities, the radius will shrink down to a couple of kilometers to ensure the app can provide relevant results. On the flip side, if iOS knows you are driving through a wide open space, the approximate location can be much larger.
The reduced accuracy setting applies to background location updates too. Apps running in the background with approximate location permissions will only get told about location notifications about four times per hour, and each update will have the same imprecise granularity; a region that typically spans a few miles across.
What about apps that actually need full location?
Some apps genuinely need true accurate location, but it will be the onus of the app developer to convince users to grant it. The app will be told if it is receiving full accuracy or reduced accuracy results. It can therefore present users the interface to inform them that it needs precise location to function (like a turn-by-turn navigation app) and direct them to Settings. Apps can also request temporary full access.
The ideal behavior is best shown through how the Maps app works in iOS 14. If the user grants restricted location, the Maps app will show the user’s current location marker as best as it can. It puts a banner at the top of the screen to explain this. However, when a user tries to navigate to another place, the Maps app will say that it needs precise location to do the routing. You can grant full access for that session or go to Settings to enable permanent precise location permissions.
iOS 14 approximate location balances user privacy and convenience
This feature is well thought out. It provides meaningful privacy improvements for Apple’s customers, without punishing classes of apps unnecessarily. Precise location permissions remain the default, causing limited disruption to the app ecosystem. Well-behaved apps can volunteer to only receive reduced accuracy permissions, as they know they don’t need anything more precise. If the user disables it, the app has the opportunity to explain why it needs full location and can direct the user directly to the appropriate page in Settings.
The summary is that there are now two axes of location permissions in iOS 14; whether the app can always access your location or just when the app is in the foreground, and whether the location retrieved is full accuracy or approximated.
Author: Benjamin Mayo.
Source: 9TO5Mac