Skip to content

[Geolocation / Android] The GPS position is only updated every 5 seconds when using "watchPosition" function on Android #2062

@carelliguillaume

Description

@carelliguillaume

Bug Report

Plugin(s)

Geolocation

Capacitor Version

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 5.7.3
@capacitor/core: 5.7.3
@capacitor/android: 5.7.3
@capacitor/ios: 5.7.3

Installed Dependencies:

@capacitor/cli: 5.5.1
@capacitor/core: 5.5.1
@capacitor/android: 5.5.1
@capacitor/ios: 5.5.1

[success] iOS looking great! 👌
[success] Android looking great! 👌

Platform(s)

Android

Current Behavior

When you use "watchPosition" function of the Geolocation Plugin on Android, the GPS position is only updated every 5 seconds which is not sufficient for position tracking. The refresh on Android is jerky compared to iOS which is much smoother. Moreover, its hardcoded in the following class when calling method setMinUpdateIntervalMillis :
https://github.com/ionic-team/capacitor-plugins/blob/main/geolocation/android/src/main/java/com/capacitorjs/plugins/geolocation/Geolocation.java

  LocationRequest locationRequest = new LocationRequest.Builder(10000)
      .setMaxUpdateDelayMillis(timeout)
      .setMinUpdateIntervalMillis(5000)
      .setPriority(priority)
      .build();

Expected Behavior

We should be able to configure the setMinUpdateIntervalMillis to have more accurate position tracking on Android. We should have a parameter like the "timeout" parameter used in the setMaxUpdateDelayMillis call. At least we should be able to remove the setMinUpdateIntervalMillis call to let Android manage the refreshing automatically like iOS Geolocation Plugin.

Code Reproduction

Just call the "watchPosition" of the Geolocation Plugin on Android

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions