Utilizar el cuadro de diálogo de configuración predeterminada de Android en ON de mi aplicación

En nuestra aplicación queremos integrar el android Default GPS Dialog. El mismo diálogo que aparece cuando el GPS está apagado y pulsamos mi botón de ubicación en las aplicaciones de google map. También he adjuntado la imagen del diálogo que quiero integrar.

  1. Al hacer clic en "No" se cerrará el diálogo.
  2. Al hacer clic en la opción "Sí" se activará el GPS del dispositivo directamente.

Diálogo el aparece para la aplicación de OLA Abajo (ANDROID L):
Introduzca aquí la descripción de la imagen

El cuadro de diálogo aparece para la aplicación OLA A continuación (ANDROID KIT_KAT):
Introduzca aquí la descripción de la imagen

El cuadro de diálogo aparece para Google Map abajo (ANDROID L):
Introduzca aquí la descripción de la imagen

Nuestra implementación actual es cuando el GPS está apagado, estamos redirigiendo la aplicación a la pantalla de configuración de ubicación predeterminada del dispositivo desde donde puede activar la ubicación.

Esperando respuestas. Gracias por adelantado.

Debe utilizar la última versión del servicio de Google Play. La última versión tiene un diálogo para activar todas las cosas necesarias para obtener el GPS.

En la documentación del servicio de reproducción de Android Developer,

Ajustes de ubicación – Si bien el FusedLocationProviderApi combina varios sensores para proporcionarle la ubicación óptima, la precisión de la ubicación que recibe su aplicación depende en gran medida de la configuración activada en el dispositivo (GPS, wifi, modo avión y otros). Utilizando la nueva clase SettingsApi, puede abrir un cuadro de diálogo Configuración de ubicación que muestra un control de un solo toque para que los usuarios puedan cambiar su configuración sin abandonar su aplicación.

Link se dirige a la documentación de versión de Play Service. La versión 7.0 ha introducido este nuevo indicador.

import android.content.Intent; import android.content.IntentSender; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.PendingResult; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.common.api.Status; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.LocationSettingsResult; import com.google.android.gms.location.LocationSettingsStatusCodes; public class LocSettingsActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ResultCallback { protected GoogleApiClient mGoogleApiClient; protected LocationRequest locationRequest; int REQUEST_CHECK_SETTINGS = 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loc_settings); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this).build(); mGoogleApiClient.connect(); locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(30 * 1000); locationRequest.setFastestInterval(5 * 1000); } @Override public void onConnected(@Nullable Bundle bundle) { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest); builder.setAlwaysShow(true); PendingResult result = LocationServices.SettingsApi.checkLocationSettings( mGoogleApiClient, builder.build() ); result.setResultCallback(this); } @Override public void onConnectionSuspended(int i) { } @Override public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { } @Override public void onResult(@NonNull LocationSettingsResult locationSettingsResult) { final Status status = locationSettingsResult.getStatus(); switch (status.getStatusCode()) { case LocationSettingsStatusCodes.SUCCESS: // NO need to show the dialog; break; case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: // Location settings are not satisfied. Show the user a dialog try { // Show the dialog by calling startResolutionForResult(), and check the result // in onActivityResult(). status.startResolutionForResult(LocSettingsActivity.this, REQUEST_CHECK_SETTINGS); } catch (IntentSender.SendIntentException e) { //failed to show } break; case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: // Location settings are unavailable so not possible to show any dialog now break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CHECK_SETTINGS) { if (resultCode == RESULT_OK) { Toast.makeText(getApplicationContext(), "GPS enabled", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "GPS is not enabled", Toast.LENGTH_LONG).show(); } } } } 
 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.google.android.gms:play-services-location:8.4.0' } 

Ola Cabs utiliza la API de configuración recién liberada para lograr esta funcionalidad. Según la nueva API, no se requiere que el usuario navegue a la página de configuración para habilitar los servicios de ubicación, ofreciendo una integración transparente para el mismo. Por favor, lea esto para más detalles.

  • ¿Cómo averiguo si el GPS de un dispositivo Android está habilitado?
  • Obtener país de coordenadas?
  • Realidad Aumentada - Utilizando sólo GPS
  • Ubicación por dirección IP en interiores
  • El acceso al GPS no funciona. La aplicación utiliza la red para obtener ubicación
  • ¿Cómo es posible que la aplicación Google Fit mide el número de pasos todo el tiempo sin drenar la batería?
  • ACCESS_FINE_LOCATION permiso
  • Accede al GPS en Android desde C ++
  • Android GPS Activa / desactiva el ahorro de tiempo en un archivo de texto Dentro de SDCARD con líneas de múltiples líneas
  • crear un cuadro delimitador alrededor del punto geográfico
  • ¿Por qué Location.distanceBetween arroja una excepción para el parámetro de resultado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.