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_LOCATION
android.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 atividadenoonConnected
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!