react-native-background-geolocation icon indicating copy to clipboard operation
react-native-background-geolocation copied to clipboard

Financial apps and ACCESS_FINE_LOCATION

Open UnderTheMoonspell opened this issue 1 year ago • 2 comments

So according to new Google guidelines (https://support.google.com/googleplay/android-developer/answer/9876821?hl=en), EWA apps, like ours, are forbidden to have Access_fine_location permission, which has made them first blocking our app in review, and lately they even removed our app from the play store (without any warning). So we had to remove both permissions and hide the feature that uses this lib to have the app approved (still pending so we've been two days without the app on the store). While this process is ongoing, I was trying to do some testing with the app requesting only Access_coarse_location. The app seems to work fine, difference being theres no precise option in Android when the modal shows up, until it eventually always crashes with an ANR.

image

I'm wondering why the precise location should be a requirement for the lib to work, but its a fact, that if I use the two permissions the app works as usual.

Your Environment

  • Plugin version: 4.17.2
  • Platform: Android
  • OS version: 14 (emulator)
  • Device manufacturer / model:
  • React Native version (react-native -v): 0.73.9
  • Plugin config
{
          url: ****,
          headers: {
            ...getGlobalDefaultHeaders(),
          },
          geofenceTemplate: ****,
          autoSync: true,
          geofenceModeHighAccuracy: true, // <-- consumes more power; default is false.
          debug: false, // NOTE: if true it will request the notification permissions
          logLevel:
            __DEV__ 
              ? BackgroundGeolocation.LOG_LEVEL_VERBOSE
              : BackgroundGeolocation.LOG_LEVEL_OFF,
          stopOnTerminate: false,
          startOnBoot: true,
          desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH,
          disableLocationAuthorizationAlert: true,
          locationAuthorizationRequest: 'Always',
          disableMotionActivityUpdates: true,
          disableProviderChangeRecord: true,
          backgroundPermissionRationale: strings.screen.geolocationIntro.androidPermissionsDialog,
          params: {
            user_id: userId,
            device_id: device.deviceId || undefined,
            device_name: device.deviceName,
            device_os: device.platform,
          },
        }

Expected Behavior

Actual Behavior

Steps to Reproduce

  1. Open the app
  2. Give location permissions
  3. Wait

Context

Debug logs

Logs
PASTE_YOUR_LOGS_HERE

UnderTheMoonspell avatar Oct 11 '24 13:10 UnderTheMoonspell

Hi @christocracy is this behavior expected? We've been unable to use the library in our apps due to the ACCESS_FINE_LOCATION permission requirement. Despite the potential impact on accuracy we would like to experiment using the library without requiring it, is this something that should be possible?

jdlourenco avatar Oct 18 '24 11:10 jdlourenco

@UnderTheMoonspell

Personal loan apps, apps with the primary purpose of facilitating access to personal loans

Is your app a “personal loan app”?

christocracy avatar Oct 19 '24 17:10 christocracy

@christocracy its an EWA app, which is in the same category

UnderTheMoonspell avatar Oct 23 '24 09:10 UnderTheMoonspell

What does “EWA” mean?

christocracy avatar Oct 23 '24 10:10 christocracy

Early Wage Access

UnderTheMoonspell avatar Oct 23 '24 11:10 UnderTheMoonspell

Why do you need powerful background location tracking for that type of app?

christocracy avatar Oct 23 '24 11:10 christocracy

Some of our clients require that we offer them a timekeeping feature. So we use this lib to calculate their users' worked hours (we only use the geofence module). The thing is we wanted to try this feature (and its correspondent accuracy) without the ACCESS_FINE_LOCATION, but the app crashes if we explicitly remove it in the manifest file.

UnderTheMoonspell avatar Oct 23 '24 11:10 UnderTheMoonspell

Geofencing requires ACCESS_FINE:

https://developer.android.com/develop/sensors-and-location/location/geofencing

IMG_2362

christocracy avatar Oct 23 '24 12:10 christocracy

Ah ok fair enough. The App in iOS keeps working, but yeah if its in the Android Documentation nothing can be done. Thank you @christocracy

UnderTheMoonspell avatar Oct 23 '24 12:10 UnderTheMoonspell

The App in iOS keeps working

ACCESS_FINE is irrelevant to iOS.

iOS geofencing requires “Always” location permission. They will not work with WhenInUse.

christocracy avatar Oct 23 '24 12:10 christocracy

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Nov 23 '24 02:11 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar Dec 07 '24 02:12 github-actions[bot]