Android: ubicación de Google Maps con bajo uso de batería

Mi aplicación está usando Maps porGoogle Play Services

speficying:

mMap.setMyLocationEnabled(true);

Me doy cuenta de que cada vez que visualizo el mapa en mi aplicación:

la ubicación se indica en el mapa con un punto azulse muestra un icono de ubicación en la barra superiorsi entro en Configuración / Ubicación del teléfono, mi aplicación se informa como "Uso de batería alta"

Sin embargo, puedo ver que hay aplicaciones que usan Mapas y aún muestran el punto azul de ubicación, pero el ícono de ubicación no aparece en la barra superior y su uso de batería es bajo.

Mi aplicación actualmente otorga ambos permisos:

android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATION

Mi pregunta es:

¿Cómo puedo mostrar la ubicación del punto azul con poco uso de batería?

¿Es posible especificar la precisión / uso de la batería por código?

ACTUALIZAR

En realidad, me di cuenta de que la forma de hacerlo es usar elGoogleApiClient'sFusedLocationApi

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

He configurado el GoogleApiClient dentro de mi Actividad, llamando:

GoogleApiClient.connect() en el inicio de la actividadGoogleApiClient.disconnect() en la parada de la actividad

sobre elonConnected devolución de llamada establecí los criterios para las actualizaciones de ubicación: intervalo más rápido de 1 minuto con baja prioridad de energía:

    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
    }

He probado que GoogleApiClient se conecta correctamente al inicio, pero por alguna razón cada vez que visito el fragmento con el MapView incrustado, sigo recibiendo eluso elevado de la batería para mi aplicación en la pantalla Configuración / Ubicación!

¡Parece que MapView está ignorando estos criterios de baja potencia!

Respuestas a la pregunta(4)

Su respuesta a la pregunta