Beruflich Dokumente
Kultur Dokumente
Introducción
Este proyecto tiene por objetivo ilustrar lo siguiente:
• Solicitar permisos para acceder a información de localización.
• Activar un listener para obtener la localización.
• Obtener la última localización conocida.
Creando el proyecto
En Android Studio, creamos un proyecto nuevo, con el nombre MyLocation. Adicionamos al
proyecto un Activity de tipo Basic Activity.
Completando características en la UI
Abrimos para edición el archivo content_main.xml y modificamos las propiedades del widget de tipo
TextView que se adiciona por defecto, de tal forma que se aprecie de la siguiente manera.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/locationTextView"/>
Declaramos los siguientes atributos y constantes dentro de la clase, antes de iniciar la declaración de
métodos. Estos atributos nos serán de utilidad para implementar los diversos aspectos de la
experiencia.
Verificando permisos
En el archivo MainActivity.java, adicionamos los siguientes bloques de código para implementar dos
métodos.
El primero, validatePermissions(), realiza una verificación para ver si contamos con el permiso para
acceder a la localización. De no contar con dicho permiso, procedemos a solicitarlo vía el método
requestPermissions().
private void validatePermissions() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)) {
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION},
PERMISSIONS_REQUEST_ACCESS_LOCATION);
}
} else {
locationPermissionGranted = true;
}
}
El segundo método que vamos a implementar es un requisito para el sistema de permisos de Android
en tiempo de ejecución. onRequestPermissionsResult() nos permitirá comprobar qué resultó de la
solicitud de permisos al usuario. Aquí tenemos la oportunidad de consultar para cada permiso
solicitado, si el usuario concedió dicho permiso o no. En función a ello en nuestro caso, actualizamos
el valor de la variable locationPermissionGranted.
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSIONS_REQUEST_ACCESS_LOCATION: {
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
} else {
}
}
Si ejecuta la aplicación observaremos dos cosas, primero la solicitud de permiso para acceder a
Localización y luego la vista por defecto mostrando el texto que contiene la Latitud y Longitud
actuales.