expo-location-forked

Allows reading geolocation information from the device. Your app can poll for the current location or subscribe to location update events.

Usage no npm install needed!

<script type="module">
  import expoLocationForked from 'https://cdn.skypack.dev/expo-location-forked';
</script>

README

expo-location

Fork of expo-location from SDK41 including bugfix for asking background permissions when starting foreground service. https://github.com/expo/expo/pull/12594

Allows reading geolocation information from the device. Your app can poll for the current location or subscribe to location update events.

API documentation

Installation in managed Expo projects

For managed managed Expo projects, please follow the installation instructions in the API documentation for the latest stable release.

Installation in bare React Native projects

For bare React Native projects, you must ensure that you have installed and configured the react-native-unimodules package before continuing.

Add the package to your npm dependencies

expo install expo-location

Configure for iOS

Add NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription keys to your Info.plist:

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to use your location</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to use your location</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to use your location</string>

Run npx pod-install after installing the npm package.

Configure for Android

This module requires the permissions for approximate and exact device location. It also needs the foreground service permission to subscribe to location updates, while the app is in use. These permissions are automatically added.

<!-- Added permissions -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

<!-- Optional permissions -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

Note: on Android, you have to submit your app for review and request access to use the background location permission.

Contributing

Contributions are very welcome! Please refer to guidelines described in the contributing guide.