Please provide the following:
- SDK Version: 39
- Platforms(Android/iOS/web/all): Android
I only need to get a location in the foreground and there is how I’m using the module “expo-location” below.
However, my app got rejected from Google PlayStore due to accessing the location in the background.
Google PlayStore suggested restricting accessing the location in the background.
How can I exclude the background location with SDK39?
in addition to that, while I was searching for a solution about this I found a post suggesting upgrade SDK to 40 and I tried but it turned out as an error. So I need a solution for this with SDK 39.
Thank you.
expo diagnostics
Expo CLI 4.0.17 environment info:
System:
OS: macOS 11.1
Shell: 5.8 - /bin/zsh
Binaries:
Node: 14.5.0 - /usr/local/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 6.14.11 - /usr/local/bin/npm
Managers:
CocoaPods: 1.9.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
IDEs:
Android Studio: 4.0 AI-193.6911.18.40.6514223
Xcode: 12.3/12C33 - /usr/bin/xcodebuild
npmPackages:
expo: ^39.0.5 => 39.0.5
react: 16.13.1 => 16.13.1
react-dom: 16.13.1 => 16.13.1
react-native: https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz => 0.63.2
react-native-web: ^0.13.18 => 0.13.18
react-navigation: ^4.4.3 => 4.4.3
npmGlobalPackages:
expo-cli: 4.0.17
Expo Workflow: managed
package.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@expo/react-native-action-sheet": "^3.8.0",
"@expo/vector-icons": "^10.2.1",
"@react-native-community/async-storage": "^1.12.1",
"@react-native-community/checkbox": "^0.5.5",
"@react-native-community/masked-view": "0.1.10",
"@react-native-community/netinfo": "5.9.6",
"@react-native-community/picker": "1.6.6",
"@react-native-community/viewpager": "4.1.6",
"@react-navigation/bottom-tabs": "^5.10.2",
"@react-navigation/drawer": "^5.10.2",
"@react-navigation/material-top-tabs": "5.2.16",
"@react-navigation/native": "^5.8.2",
"@react-navigation/stack": "^5.11.1",
"axios": "^0.20.0",
"debounce": "^1.2.0",
"expo": "^39.0.5",
"expo-asset": "~8.2.0",
"expo-av": "~8.6.0",
"expo-background-fetch": "~8.5.0",
"expo-barcode-scanner": "~9.0.0",
"expo-blur": "~8.2.0",
"expo-brightness": "~8.3.0",
"expo-camera": "~9.0.0",
"expo-contacts": "~8.5.0",
"expo-device": "~2.3.0",
"expo-file-system": "~9.2.0",
"expo-font": "~8.3.0",
"expo-linear-gradient": "~8.3.0",
"expo-location": "~9.0.0",
"expo-media-library": "~9.2.1",
"expo-network": "~2.3.0",
"expo-notifications": "~0.7.2",
"expo-permissions": "~9.3.0",
"expo-screen-capture": "^1.1.1",
"expo-sms": "~8.3.1",
"expo-splash-screen": "~0.6.2",
"expo-sqlite": "~8.4.0",
"expo-status-bar": "~1.0.2",
"expo-task-manager": "~8.5.0",
"expo-updates": "^0.3.5",
"expo-video-player": "^1.6.1",
"expo-video-thumbnails": "~4.3.0",
"expo-web-browser": "~8.5.0",
"fiction-expo-restart": "^1.0.5",
"formik": "^2.2.1",
"jsbarcode": "^3.11.3",
"lodash": "^4.17.20",
"lottie-ios": "3.1.8",
"lottie-react-native": "~2.6.1",
"moment": "^2.29.1",
"prop-types": "^15.7.2",
"query-string": "^6.13.6",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz",
"react-native-animatable": "^1.3.3",
"react-native-appearance": "~0.3.3",
"react-native-auto-height-image": "^3.2.3",
"react-native-autoheight-webview": "^1.5.4",
"react-native-elements": "^2.3.2",
"react-native-expo-image-cache": "^4.1.0",
"react-native-extended-stylesheet": "^0.12.0",
"react-native-gesture-handler": "~1.7.0",
"react-native-image-gallery": "^2.1.5",
"react-native-image-slider": "^2.0.3",
"react-native-image-zoom-viewer": "^3.0.1",
"react-native-modal": "^11.5.6",
"react-native-qrcode-svg": "^6.0.6",
"react-native-reanimated": "~1.13.0",
"react-native-safe-area-context": "3.1.4",
"react-native-screens": "~2.10.1",
"react-native-scrollable-tab-view": "^1.0.0",
"react-native-svg": "12.1.0",
"react-native-tab-view": "2.15.1",
"react-native-vector-icons": "^7.1.0",
"react-native-web": "^0.13.18",
"react-native-webview": "10.7.0",
"react-navigation": "^4.4.3",
"react-navigation-drawer": "^2.6.0",
"react-navigation-header-buttons": "5.0.2",
"react-redux": "^7.2.2",
"react-refresh": "^0.9.0",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"styled-components": "^5.2.1",
"urijs": "^1.19.2"
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/plugin-syntax-class-properties": "^7.12.1",
"@babel/runtime": "^7.12.1",
"@react-native-community/eslint-config": "^2.0.0",
"babel-jest": "^26.6.1",
"babel-plugin-module-resolver": "^4.0.0",
"babel-preset-expo": "^8.3.0",
"jest": "^26.6.1",
"metro-react-native-babel-preset": "^0.60.0"
},
"private": true,
"jest": {
"preset": "react-native"
}
}
if (AppState.currentState != "active") return;
let { status } = await Location.requestPermissionsAsync();
if (status !== "granted") {
// setErrorMsg("Permission to access location was denied");
}
if (location == null) {
let location = await Location.getLastKnownPositionAsync();
setLocation(location);
}
app.json
"permissions": [
"CAMERA",
"FOREGROUND_SERVICE",
"ACCESS_COARSE_LOCATION",
"ACCESS_FINE_LOCATION",
"READ_EXTERNAL_STORAGE",
"READ_INTERNAL_STORAGE",
"WRITE_EXTERNAL_STORAGE"
]