navigator.geolocation.getCurrentPosition obtient toujours un délai d'attente dans Android jusqu'à ce que GPS / Location soit désactivé

app.controller('dashboard', function($scope){
    $scope.getPosition = function(position){
        $scope.acc = position.coords;
        $scope.lat = position.coords.latitude;
        $scope.lng = position.coords.longitude;
        $scope.$apply();
    };
    $scope.getPositionErr = function(error){
        alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
    };
    navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false});
});

Je suis en utilisant Angular JS et Cordova pour une application Android.
Ce code fonctionne très bien sur le bureau mais pas sur le Nexus 4 avec Lollipop.
Aussi contrôleur de code est en cours d'exécution après deviceready selon l'exigence de Cordova

J'ai essayé

  • Réglage HighAccuracy de faux
  • Retrait de la géolocalisation plugin afin qu'il utilise par défaut l'emplacement de la Wifi
  • Redémarrage de l'appareil
  • De compensation cache du navigateur
  • Mode avion on/off
  • Wifi on/off
  • De données mobiles sur/off

Mais je n'arrive pas à obtenir lat, long de géolocalisation et obtient toujours timeout.

Il ne fonctionne que quand je l'ai activé la Localisation/GPS de réglage. Après l'activation de ce code fonctionne comme prévu.

source d'informationauteur Nat Geo