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.
- Al hacer clic en "No" se cerrará el diálogo.
- 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):
- Android: detecta que el usuario abre la barra de estado
- Reemplazar proveedor de señales GPS predeterminado en dispositivos Android
- Longitud y latitud del GPS de la foto geotiquetada
- Android Context sin estar en una actividad? ¿Y otra programación sin actividad?
- La mejor manera de obtener la ubicación del GPS del usuario en segundo plano en Android
El cuadro de diálogo aparece para la aplicación OLA A continuación (ANDROID KIT_KAT):
El cuadro de diálogo aparece para Google Map abajo (ANDROID L):
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.
- Android GPS no funciona hasta que se reinicie en nuevos teléfonos
- ¿La altitud GPS de Android es incorrecta debido a que no incluye la altura del geoide?
- Cómo encontrar la ubicación del GPS en Android de forma periódica
- Cómo obtener la ubicación GPS de Android
- Posicionamiento egnos en un dispositivo android
- Android Location Manager, Obtener ubicación GPS, si no hay GPS, luego llegar a la ubicación del proveedor de red
- Compruebe si la geolocalización ha sido falsificada
- Que es la mejor manera de calcular la velocidad en android si "cálculo manual utilizando coordenadas GPS" o "location.getSpeed"?
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 podemos obtener el arraylist (tanto de cadena y entero) de los recursos xml
- Android ViewPager setCurrentItem no funciona después de onResume