Pergunta

Estou tentando recuperar a localização atual do dispositivo usando o GPS do dispositivo. Quando me registro para atualizações (como mostrado abaixo) para LocationManager.GPS_PROVIDER Nenhuma atualização está rolando, mas quando eu faço o mesmo para LocationManager.NETWORK_PROVIDER Eu recebo as atualizações.

Eu o testei no meu dispositivo Android (não no emulador). Também me certifiquei de que o GPS esteja ligado. Outros aplicativos (não meus) podem acessar minha localização. O que estou perdendo aqui?

LocationListener locationListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
            locationRetrieved(location, this);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) { }

    public void onProviderDisabled(String provider) { providerDisabled(); }
};

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
Foi útil?

Solução

A inicialização do GPS não é um processo instantâneo. O receptor basicamente precisa conhecer a posição de cada um dos satélites GPS na constelação para calcular sua localização

Você está verificando primeiro se houver um último local conhecido que você possa usar? A maioria dos aplicativos primeiro verifica e depois procure um local.

Outras dicas

Você deve verificar o que seu telefone está permitindo a reunião de localização com o GPS.

Provavelmente o que está acontecendo é que, nas configurações -> Localização Você tem apenas a caixa de seleção para localização sem fio. Nesse caso, o GPS_Provider não funciona.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top