En esta página:
Demo
Las aplicaciones Android que utilizan el GPS del equipo, en ocasiones necesitan acceder a la ubicación del usuario mientras esta se encuentra en plena ejecución. Android por seguridad restringe la ubicación a las aplicaciones, para cuidar la seguridad de los usuarios. Para acceder a la ubicación del usuario necesitas solocitar permisos al usuario, en este Post te enseñare a Como Solicitar Permisos del GPS Cuando una Aplicación se esta ejecutando (FusedLocationProviderClient) con Kotlin, vamos con ello.
Partes
Antes de continuar te invito a leer los siguientes artículos:
- Las Novedades más Destacadas que trae Android Studio Chipmunk
- Como Configurar el Autoguardado en Android Studio
- Que es Android y tu Primera aplicación Hola Mundo
- Las Novedades más Destacadas que trae Android Studio Dolphin – Parte 1
- Como Leer un archivo JSON en Android (Android Studio 3.6.1 + Java) – Parte 1
- Que es Kotlin y otros detalles
- Tipos de Variables en Kotlin
- Las Novedades más Destacadas que trae Android Studio 4.0
- Creando un Bot (Android) para una tienda de Postres (Dialogflow V2 + Kotlin 1.3.72) – Parte 1
- Como Solicitar Permisos del GPS Cuando una Aplicación se esta ejecutando (FusedLocationProviderClient) con Java – Parte 1
- Puedes leer más artículos en la categoría Android
Asimismo te invito a escuchar el Podcast: “Con Que Lenguaje De Programación Comenzar Para El Desarrollo Web” y “¿ Porqué Es Importante Saber Programar en la Ciberseguridad ?” (Anchor Podcast):
Spotify: | Sound Cloud: | Apple Podcasts | Anchor Podcasts |
Bien ahora continuemos con el Post: Como Solicitar Permisos del GPS Cuando una Aplicación se esta ejecutando (FusedLocationProviderClient) con Kotlin – Parte 1.
Creación de Nuevo Proyecto
Abrimos Android Studio y creamos un nuevo proyecto, elegiré Google Maps Activity, para que Android Studio me cree el mapa rápidamente y solo enfocarme en solicitar permisos cuando la aplicación este ejecutandose:
Le doy un nombre a mi proyecto, yo le pondré el nombre FusedLocationProviderClientKotlin, tu le puedes poner el nombre que desees, no hay problema. Elijo Kotlin en la lista de Lenguajes y presiono el botón Finish par aque Android Studio me cree el proyecto:
Android Studio me creo el archivo MapsActivity.kt para la actividad principal. Tu le puedes poner otro nombre, no hay problema.
Como Solicitar Permisos del GPS Cuando una Aplicación se esta ejecutando (FusedLocationProviderClient)
Abrimos el archivo MapsActivity.kt y comenzamos importando los siguiente elementos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
package com.example.fusedlocationproviderclientkotlin import android.Manifest import android.annotation.SuppressLint import android.app.Dialog import android.content.DialogInterface import android.content.IntentSender import android.content.pm.ActivityInfo import android.content.pm.PackageManager import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.WindowManager import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.fragment.app.DialogFragment import com.google.android.gms.common.api.ResolvableApiException import com.google.android.gms.location.* import com.google.android.gms.location.LocationServices.getFusedLocationProviderClient import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.PolylineOptions import com.google.android.gms.tasks.Task class MapsActivity : AppCompatActivity(), OnMapReadyCallback { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) } |
Ahora creamos las variables SOLICITAR_ACCESS_FINE_LOCATION, mMap, polylineOptions, fusedLocation ProviderClient, locationRequest y locationCallback:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com.example.fusedlocationproviderclientkotlin import android.Manifest import android.annotation.SuppressLint import android.app.Dialog import android.content.DialogInterface import android.content.IntentSender import android.content.pm.ActivityInfo import android.content.pm.PackageManager import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.WindowManager import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.fragment.app.DialogFragment import com.google.android.gms.common.api.ResolvableApiException import com.google.android.gms.location.* import com.google.android.gms.location.LocationServices.getFusedLocationProviderClient import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.PolylineOptions import com.google.android.gms.tasks.Task class MapsActivity : AppCompatActivity(), OnMapReadyCallback { // Variables private val SOLICITAR_ACCESS_FINE_LOCATION = 1000 private lateinit var mMap: GoogleMap private lateinit var fusedLocationProviderClient: FusedLocationProviderClient private lateinit var locationRequest: LocationRequest private lateinit var locationCallback: MyLocationCallBack override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) } |
Dentro del método onCreate() llamamos a la función iniciarGeolocalizacion(), esta función la crearemos más adelante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package com.example.fusedlocationproviderclientkotlin import android.Manifest import android.annotation.SuppressLint import android.app.Dialog import android.content.DialogInterface import android.content.IntentSender import android.content.pm.ActivityInfo import android.content.pm.PackageManager import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.WindowManager import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.fragment.app.DialogFragment import com.google.android.gms.common.api.ResolvableApiException import com.google.android.gms.location.* import com.google.android.gms.location.LocationServices.getFusedLocationProviderClient import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.PolylineOptions import com.google.android.gms.tasks.Task class MapsActivity : AppCompatActivity(), OnMapReadyCallback { // Variables private val SOLICITAR_ACCESS_FINE_LOCATION = 1000 private lateinit var mMap: GoogleMap private val polylineOptions = PolylineOptions().width(5f).color(Color.RED) private lateinit var fusedLocationProviderClient: FusedLocationProviderClient private lateinit var locationRequest: LocationRequest private lateinit var locationCallback: MyLocationCallBack override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) // Función que inicia la Geolocalización del usuario iniciarGeolocalizacion() } |
Bien, hasta aqui llegamos con esta primera parte, hemos creado el proyecto, también hemos importado ciertos elementos necesarios para que la aplicación funcione correctamente, creamos ciertas variables útiles para el proyecto e instanciamos la función iniciarGeolocalizacion(), la cual crearemos posteriormente.
Ten Paciencia, lo que quiero es que conozcas bien como se crea esta funcionalidad de Solicitar Permisos del GPS Cuando una Aplicación se esta ejecutando y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte continuaremos con la creación del proyecto.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.