Habilitar GPS programáticamente Android (sin navegar a los ajustes de ubicación)
Esta puede ser una pregunta muy común, sin embargo tiene que haber una forma de habilitar GPS de forma programática, como sucede en la aplicación oficial de Google Maps haciendo clic en la opción "encender" en la pantalla emergente (sin navegar a la ubicación Configuración). ¿Puede alguien ayudar?
- Cómo habilitar / deshabilitar el servicio de accesibilidad mediante programación en Android
- ¿Cómo actualizo el texto de notificación de un servicio de primer plano en Android?
- Acceso al controlador de subprocesos de interfaz de usuario desde un servicio
- Ocultar notificación de servicio de primer plano mientras la actividad es visible
- Realizar cambios en la interfaz de usuario de la actividad principal desde el subproceso en Service
- Cómo actualizar la ubicación de google map v2 desde el servicio de fondo android
- Android: mensajes de Handler retrasados al final del hilo de trabajo
- Actualización de la interfaz de usuario desde un servicio (mediante un controlador?)
- El servicio de Android no se puede iniciar debido a un ClassNotFoundException de una clase que ya no existe
- Comprobar si el usuario ha concedido NotificationListener acceso a mi aplicación
- Servicio con Overlay - presione el botón de retroceso
La aplicación de Google Maps utiliza lo que ahora está disponible para nosotros como SettingsApi
en 7.0.0 del SDK de Play Services. Puede usar SettingsApi
para averiguar si su LocationRequest
puede cumplirse con los proveedores de ubicación que estén habilitados. Si no se puede cumplir y Play Services piensa que el usuario puede cambiar esto, puede pedir que aparezca el cuadro de diálogo que aparece en Mapas.
El uso de SettingsApi
no es especialmente simple. Acabo de publicar una aplicación de ejemplo para que ayer, desde la versión 6.6 de mi libro . El uso de ACTION_LOCATION_SOURCE_SETTINGS
, como se sugiere en la respuesta de Laurenswuyts, es mucho más sencillo de implementar.
Eso es porque están usando la Settings API
en los servicios de juego como se describe en la respuesta de Commonsware, que es un poco difícil. Usted está mejor con el "viejo" método:
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent);