Android: local do Google Maps com pouca bateria

No momento, meu aplicativo está usando o Maps porGoogle Play Services

especiaria:

mMap.setMyLocationEnabled(true);

Percebo cada vez que estou exibindo o mapa no meu aplicativo:

a localização é indicada no mapa por um ponto azulum ícone de localização está sendo exibido na barra superiorse eu entrar em Configurações / Localização do telefone, meu aplicativo será reportado como "Bateria alta"

No entanto, posso ver que existem aplicativos que usam o Google Maps e ainda mostram o ponto azul do local, mas o ícone do local não aparece na barra superior e o uso da bateria é baixo.

No momento, meu aplicativo concede as duas permissões:

android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATION

Minha pergunta é:

como posso mostrar o ponto azul do local com pouca bateria?

é possível especificar a precisão / uso da bateria por código?

ATUALIZAR

Na verdade, eu percebi que a maneira de fazer isso é usar oGoogleApiClientéFusedLocationApi

    mGoogleApiClient = new GoogleApiClient.Builder(context)
            .addApi(LocationServices.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();

Eu configurei o GoogleApiClient dentro da minha Atividade, chamando:

GoogleApiClient.connect() no início da atividadeGoogleApiClient.disconnect() na parada da atividade

noonConnected retorno de chamada Defino os critérios para as atualizações de localização: intervalo mais rápido de 1 minuto com baixa prioridade de energia:

    private static final LocationRequest REQUEST = LocationRequest.create()
        .setFastestInterval(60000)   // in milliseconds
        .setInterval(180000)         // in milliseconds
        .setPriority(LocationRequest.PRIORITY_LOW_POWER);

    @Override
    public void onConnected(Bundle bundle) {
        LocationServices.FusedLocationApi.requestLocationUpdates(
            mGoogleApiClient,
            REQUEST,
            this);  // LocationListener
    }

Testei que o GoogleApiClient se conecta corretamente no início, mas, por alguns motivos, sempre que visito o fragmento com o MapView incorporado, ainda recebo ouso de bateria alta para o meu aplicativo na tela Configurações / Localização!

Parece que o MapView está ignorando esses critérios de baixa potência!

questionAnswers(4)

yourAnswerToTheQuestion