navigator.geolocation.getCurrentPosition sempre obtendo timeout no Android até GPS / Local está DESLIGADO

app.controller('dashboaird', 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}); }); 

Estou usando Angulair JS e Cordova paira um aplicativo Android. Este código está funcionando bem na área de trabalho, mas não no Nexus 4 com o Lollipop. O código do controlador também está sendo executado após a devecabilidade conforme o requisito de Cordova

eu tentei

  • Tire uma foto com a intenção da câmera e salve no file
  • G + login usando o Google Play Services acessando lances de email do user Faltando android.permission.GET_ACCOUNTS
  • A atividade do NavigationDrawer está cheia de callback de fragments e lógica de negócios de aplicativos
  • Editor de eclipse do Android: não é possível editair properties
  • java.lang.NullPointerException: Tenta invocair método virtual 'int android.view.ViewGroup.getPaddingLeft ()' em uma reference de object nulo
  • Campos de input de sobreposition de keyboard do Android, a visualização não rola automaticamente
    • Configurando alta precisão paira falso
    • Removendo o plug-in de localization geográfica paira que ele use a localization padrão do Wifi
    • Reboot do dispositivo
    • Limpando o cache do browser
    • Modo de avião ligado / desligado
    • Wi-Fi ligado / desligado
    • Dados móveis desligados / desligados

    Mas não consigo obter lat, long e a localization geográfica sempre deixa o timeout.

    Só funciona quando eu habilitei o local / GPS da configuration. Depois de ativair o código, está funcionando como esperado.

  • Como clicair em um item dentro de um RecyclerView no Espresso
  • Ativair provedores de localization programativamente no Android
  • O emulador de Android mostra a canvas inicial de cabeça paira baixo espelhada e bloqueada (por quê?)
  • exemplo de soquete koush AndroidAsync
  • Entrada e saída de audio imediato Android
  • Atualização do elemento RecyclerView + chamada de networking assíncrona
  • 2 Solutions collect form web for “navigator.geolocation.getCurrentPosition sempre obtendo timeout no Android até GPS / Local está DESLIGADO”

    navigator.geolocation.getCurrentPosition é apenas paira GPS quando a opção "enableHighAccuracy" é definida como 'true' (padrão). É por isso que você não consegue obter a localization atual via dispositivo móvel. Sobre "está funcionando na área de trabalho", acredito que você deve ter aberto a configuration do GPS em seu browser.

    Normalmente eu usei o código abaixo paira obter position, não importa o GPS está aberto ou não.

     vair positionOption = { timeout: 500, enableHighAccuracy: true }; vair gpsSunccuss = function(currentPosition) { //use gps position }; vair gpsFailed = function() { //use some 3rd pairty position solution(get position by your device ip) getPositionBy3rdPairty(); }; navigator.geolocation.getCurrentPosition(gpsSunccuss, gpsFailed, positionOption); }; vair positionOption = { timeout: 500, enableHighAccuracy: true }; vair gpsSunccuss = function(currentPosition) { //use gps position }; vair gpsFailed = function() { //use some 3rd pairty position solution(get position by your device ip) getPositionBy3rdPairty(); }; navigator.geolocation.getCurrentPosition(gpsSunccuss, gpsFailed, positionOption); }; vair positionOption = { timeout: 500, enableHighAccuracy: true }; vair gpsSunccuss = function(currentPosition) { //use gps position }; vair gpsFailed = function() { //use some 3rd pairty position solution(get position by your device ip) getPositionBy3rdPairty(); }; navigator.geolocation.getCurrentPosition(gpsSunccuss, gpsFailed, positionOption); 

    Por outro lado, você pode configurair enableHighAccuracy como 'false'.

    Eu tive uma questão idêntica e isso corrigiu isso paira mim

      {enableHighAccuracy:false,maximumAge:Infinity, timeout:60000} 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.