Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Financial apps and ACCESS_FINE_LOCATION #2172

Open
UnderTheMoonspell opened this issue Oct 11, 2024 · 10 comments
Open

Financial apps and ACCESS_FINE_LOCATION #2172

UnderTheMoonspell opened this issue Oct 11, 2024 · 10 comments

Comments

@UnderTheMoonspell
Copy link

UnderTheMoonspell commented Oct 11, 2024

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
@jdlourenco
Copy link

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?

@christocracy
Copy link
Member

@UnderTheMoonspell

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

Is your app a “personal loan app”?

@UnderTheMoonspell
Copy link
Author

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

@christocracy
Copy link
Member

What does “EWA” mean?

@UnderTheMoonspell
Copy link
Author

Early Wage Access

@christocracy
Copy link
Member

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

@UnderTheMoonspell
Copy link
Author

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.

@christocracy
Copy link
Member

@UnderTheMoonspell
Copy link
Author

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

@christocracy
Copy link
Member

The App in iOS keeps working

ACCESS_FINE is irrelevant to iOS.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants