Location comes in two permissions. Foreground access (requestForegroundPermissionsAsync, "While using the app" on Android, "When In Use" on iOS) covers everything in this section. Background access (requestBackgroundPermissionsAsync, "Allow all the time") is for navigation and fitness apps, needs its own prompt after the first, and gets extra review in both stores; a bookshop app should not ask for it. Since Android 12 the user also chooses Precise (ACCESS_FINE_LOCATION) or Approximate (ACCESS_COARSE_LOCATION, about 3 km), so an app must cope with a fuzzy position. The config plugin writes the iOS explanation:
["expo-location",
{ "locationWhenInUsePermission": "BookNest shows the bookshops nearest to you." }],On Android it adds both location permissions to the manifest (Android Permissions). Opening the store locator for the first time showed Android's prompt (left in the figure in A Store Locator for BookNest). After While using the app, a second dialog appeared, this time from Google Play 1 services, asking to turn on "Location Accuracy", which uses Wi-Fi and cell signals. getCurrentPositionAsync() shows it because its mayShowUserSettingsDialog option defaults to true on Android; pass false if you would rather accept a GPS-only fix. Ask for location when the user opens the feature that needs it, never at startup, and show something useful when the answer is no: BookNest then lists every shop without distances.