darron1217 / react-native-background-geolocation

Background and foreground geolocation plugin for React Native. Tracks user when app is running in background.
Apache License 2.0
33 stars 38 forks source link

Foreground service and the notification are not working since Android > 12 #29

Open tgalibert opened 1 year ago

tgalibert commented 1 year ago

Your Environment

BackgroundGeolocation.configure({ desiredAccuracy: BackgroundGeolocation.HIGH_ACCURACY, stationaryRadius: 20, distanceFilter: 20, notificationTitle: 'FOREGROUND SERVICE', notificationText: 'ENABLED, notificationsEnabled: true, debug: false, startOnBoot: false, maxLocations: 3000, stopOnTerminate: true, locationProvider: BackgroundGeolocation.ACTIVITY_PROVIDER, interval: 10000, fastestInterval: 5000, activitiesInterval: 10000, stopOnStillActivity: false, startForeground: true, });

Context

I have configured the plugin for working with the foreground service. But, there is no notification displayed on the phone. Moreover, the event 'locate' is never triggered. This service worked when Android version < 12

Expected Behavior

A notification should be displayed on the phone for the foreground service and the event 'locate' should be fired.

Actual Behavior

No notification and the event is not triggered

Possible Fix

For the notification, a channelId is necessary since Android version > 12.

Steps to Reproduce

  1. New react native 0.71 project
  2. Add the plugin and configure it for a foreground use
  3. Launch the app

Context

I can't get the location of an user (for security) in foreground mode

Debug logs

01-19 17:52:45.147 29543 29626 D com.marianhello.bgloc.BackgroundGeolocationFacade: Starting service 01-19 17:52:45.151 29543 29626 I com.marianhello.bgloc.BackgroundGeolocationFacade: User granted requested permissions 01-19 17:52:45.152 29543 29626 I com.marianhello.bgloc.BackgroundGeolocationFacade: Attempt to start bg service 01-19 17:52:53.513 29543 29543 D com.marianhello.bgloc.BackgroundGeolocationFacade: Received MSG_ON_LOCATION 01-19 17:52:56.135 29543 29543 I com.marianhello.bgloc.react.BackgroundGeolocationModule: App will be paused 01-19 17:52:57.709 29543 29543 D com.marianhello.bgloc.BackgroundGeolocationFacade: Received MSG_ON_LOCATION 01-19 17:52:58.939 29543 29543 I com.marianhello.bgloc.react.BackgroundGeolocationModule: App will be resumed 01-19 17:53:02.058 29543 29543 D com.marianhello.bgloc.BackgroundGeolocationFacade: Received MSG_ON_LOCATION

The channelId property should be added for the notification. Btw, i don't know if the foreground service will work, even with this modification.

dev-andremonteiro commented 1 year ago

Can confirm this doesn't work since Android 12.

@tgalibert Could you please post a script or at least guide us on how to add the channel id so the notification works ?

rafwell commented 1 year ago

+1.

rafwell commented 1 year ago

Hi Guys. This fork is updated and working fine on android 13: https://github.com/emoreno-94/react-native-background-geolocation