ubicacion ubica studio señal saber reiniciar para obtener impreciso funciona como celular android gps

ubica - reiniciar gps android



¿Cómo recibo la transmisión del sistema cuando el estado del GPS ha cambiado? (1)

Creo que simplemente está señalando la ubicación incorrecta en el manifiesto, cambie el nombre del receptor:

<receiver android:name=".GPStStatusReceiver">

Este tipo de receptor es ideal para iniciar una aplicación cada vez que se habilita el GPS, pero mientras la aplicación se está ejecutando, el LocationListener onProviderEnabled () o onProviderDisable () captará estos incluso si el intervalo de actualización está configurado en 10 días y 1000 millas, o Más. Por lo tanto, no perderá energía de la batería si transfiere configuraciones generosas al método requestLocationUpdates ().

Adición de comentarios

Solo puedo adivinar que no estás recibiendo GPS_ENABLED_CHANGE porque no estás activando una solicitud de ubicación. Simplemente habilitando la función GPS haciendo clic en la casilla de verificación en el menú Ubicaciones no se transmitirá esta intención, alguna aplicación debe solicitar la ubicación actual. Además, no encontré ninguna documentación oficial sobre esta intención, lo que significa que Android podría cambiarla o eliminarla en cualquier momento .

Tal vez quiera el LocationManager.PROVIDERS_CHANGED_ACTION oficialmente admitido, este emitirá un Intent cuando el proveedor de GPS (y otros proveedores) esté habilitado / deshabilitado.

<action android:name="android.location.PROVIDERS_CHANGED" />

Escribí el código a continuación, pero no está funcionando. Alguien puede ayudarme? Solo quiero recibir pasivamente cambios de estado de GPS, en lugar de consultas proactivas. Ahorrar energía es lo más importante.

No hay salida de mensaje

package com.sharelbs.lbs.service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class GPStStatusReceiver extends BroadcastReceiver { public static final String GPS_ENABLED_CHANGE_ACTION = "android.location.GPS_ENABLED_CHANGE"; @Override public void onReceive(Context context, Intent intent) { Log.d("---------log--------","GPS Status onReceive"); if(intent.getAction().equals(GPS_ENABLED_CHANGE_ACTION)){ Log.d("---------log--------","GPS Status Changed"); startMyProgram(); } } }

Aquí está mi Manifest.xml:

<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <receiver android:name=".service.GPStStatusReceiver"> <intent-filter> <action android:name="android.location.GPS_ENABLED_CHANGE" /> </intent-filter> </receiver>