Servicios de ubicación de Google contra servicios de ubicación de Android
Como sabemos, tenemos dos alternativas para hacer que nuestra ubicación de aplicación sea correcta. Utilizamos la API de servicios de ubicación de Google (parte de los servicios de Google Play) o utilizamos la API de ubicación de Androids.
El problema que tengo aquí es que usando los servicios de Google, tenemos que usar la interfaz com.google.android.gms.location.LocationListener que nos proporciona actualizaciones de ubicación. Sin embargo, a diferencia del android.location.LocationListener, la versión de google no nos proporciona el estado del proveedor de ubicación (gps o internet).
- Android Smart Location Library siempre está conectado a los gps después de la aplicación cerrada
- Activación del modo de ubicación Alta exactitud o ahorro de la batería, programáticamente, sin necesidad de que el usuario visite Configuración
- Enviar extra a requestLocationUpdates intentService rompe las actualizaciones de ubicación
- API de Google Places de Google - PlaceAutocompleteFragment
- GetGoogleAppid falló / cargar no es posible Android Studio
Tenemos los siguientes métodos en el Androids Location Listener
abstract void onLocationChanged(Location location) Called when the location has changed. abstract void onProviderDisabled(String provider) Called when the provider is disabled by the user. abstract void onProviderEnabled(String provider) Called when the provider is enabled by the user. abstract void onStatusChanged(String provider, int status, Bundle extras) Called when the provider status changes
.
Sin embargo, en google sólo tenemos una
abstract void onLocationChanged(Location location)
¿Cómo identificaría los cambios en el proveedor si utilizo los servicios de google? . Por ejemplo, en medio del uso de la aplicación, el usuario decide apagar el GPS, quería mostrar un brindis en este evento.
Estoy en la oscuridad cómo debo lograr eso.
- Servicio GeoCoder no disponible
- Error al agregar geofences en Android (código de estado 1000)
- Android Location Client no puede resolver el método
- Calcular la velocidad de una aplicación de navegación sin el método getSpeed ()
- Permisos de tiempo de ejecución de Android en las versiones de android debajo de M?
- ¿Cómo obtener la ubicación exacta actual en android sin conexión a Internet?
- Obtener distancia entre la ubicación actual y Selected Place en android
- ¿Cómo comprobar si LocationManager.NETWORK_PROVIDER está disponible?
Registra un receptor para manejar la acción Providers_changed.
private static final String ACTION_GPS = "android.location.PROVIDERS_CHANGED"; private BroadcastReceiver yourReceiver; private void checkGPS() { Context context = this.getApplicationContext(); if (context != null) { Button btnGPS = (Button) findViewById(R.id.btnGPS); if (btnGPS != null) { LocationManager locationManager = (LocationManager) context .getSystemService(Context.LOCATION_SERVICE); boolean b = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); locationManager = null; if (b) { if (btnGPS.getVisibility() != View.GONE) { btnGPS.setVisibility(View.GONE); } } else { if (btnGPS.getVisibility() != View.VISIBLE) { btnGPS.setVisibility(View.VISIBLE); } } } } } private void registerReceiverGPS() { if (yourReceiver == null) { // INTENT FILTER FOR GPS MONITORING final IntentFilter theFilter = new IntentFilter(); theFilter.addAction(ACTION_GPS); yourReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent != null) { String s = intent.getAction(); if (s != null) { if (s.equals(ACTION_GPS)) { checkGPS(); } } } } }; registerReceiver(yourReceiver, theFilter); } } @Override public void onResume() { super.onResume(); checkGPS(); registerReceiverGPS(); @Override public void onStop() { super.onStop(); // Do not forget to unregister the receiver!!! if (yourReceiver != null) { unregisterReceiver(yourReceiver); yourReceiver = null; }
La versión de google 'doesnt' nos proporciona el estado del proveedor de ubicación (gps o internet)
En parte, esto se debe a que no está usando ningún proveedor de ubicación único.
¿Cómo identificaría los cambios en el proveedor si utilizo los servicios de google?
Puede probar escuchar las transmisiones de PROVIDERS_CHANGED_ACTION
.
- ¿Cómo agregar una foto de contacto a ImageView?
- Detenga Android Studio con la ayuda de la biblioteca