studio programacion móviles libros desarrollo desarrollar curso con aprende aplicaciones java android gps android-1.5-cupcake

java - programacion - Cómo habilitar programáticamente GPS en Android Cupcake



manual de programacion android pdf (7)

Debe usar el cuadro de diálogo Configuración de ubicación en Servicios de reproducción que le solicita al usuario que habilite los servicios de ubicación (si es necesario) con un solo clic.

Actualmente estoy escribiendo una aplicación en Android que funciona con el GPS. Por el momento, puedo determinar si el GPS está habilitado. Mi problema es que quiero habilitar el GPS en el inicio de la aplicación si está deshabilitado. ¿Cómo puedo hacer esto programáticamente?


Este código de método puede ser de ayuda para usted

private void turnGPSOnOff(){ String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if(!provider.contains("gps")){ final Intent poke = new Intent(); poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); poke.addCategory(Intent.CATEGORY_ALTERNATIVE); poke.setData(Uri.parse("3")); sendBroadcast(poke); //Toast.makeText(this, "Your GPS is Enabled",Toast.LENGTH_SHORT).show(); } }


Primero compruebe si el servicio de localización ya está encendido o no?

Verificar el servicio de ubicación está habilitado o no

public boolean isLocationServiceEnabled(){ LocationManager locationManager = null; boolean gps_enabled= false,network_enabled = false; if(locationManager ==null) locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); try{ gps_enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); }catch(Exception ex){ //do nothing... } try{ network_enabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); }catch(Exception ex){ //do nothing... } return gps_enabled || network_enabled; }

Entonces, finalmente para abrir si el servicio de localización se apagó previamente

if (isLocationServiceEnabled())) { //DO what you need... } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Seems Like location service is off, Enable this to show map") .setPositiveButton("YES", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); } }).setNegativeButton("NO THANKS", null).create().show(); }


Puede usar lo siguiente:

try { Settings.Secure.setLocationProviderEnabled(getContentResolver(), LocationManager.GPS_PROVIDER, true); } catch (Exception e) { logger.log(Log.ERROR, e, e.getMessage()); }

pero solo funcionará si tiene nivel de protección de firma del sistema. Entonces, necesitas cocinar tu propia Imagen para usarla realmente: /


si su pregunta es a nivel de usuario de Android estas propiedades se encuentran en: "Settings -> Location -> Use wireless networks" -> "Settings -> Location -> Use GPS satellites" .

Pero en el desarrollador puede usar la clase "android.provider.Settings.Secure" con los permisos apropiados.


No puedes, comenzando con Android 1.5. Lo máximo que puede hacer es abrir la actividad para permitir que el usuario la active o desactive. Use la acción realizada en android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS para crear una intención para abrir esta actividad.


if(!LocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER )) { Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS ); startActivity(myIntent); }