En este ejercicio se muestra como enviar intent implícitos de forma que se inicia el componente de otra aplicación que realizará la acción que se solicita en el intent. Se muestran los siguientes ejemplos:
- Abrir el navegador con una dirección web predefinida.
- Realizar una llamada a un número de teléfono.
- Mostrar un número de teléfono en el dial.
- Realizar una búsqueda de una ubicación en un mapa
- Mostrar la lista de contactos
- Editar el primer contacto de la agenda
A continuación, se detallan los tipos de Intents
implícitos utilizados en el proyecto junto con ejemplos prácticos:
-
Abrir el navegador con una URL específica.
intent = Intent(Intent.ACTION_VIEW) intent.setData(Uri.parse("http://www.moronlu18.com/wordpress")) startActivity(intent)
-
Realizar una llamada directa a un número de teléfono, verificando los permisos necesarios.
if (checkSelfPermission(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:(+34)123456789")) startActivity(intent) } else { requestPermissions(arrayOf(Manifest.permission.CALL_PHONE), PERMISSIONS_REQUEST_CALL_PHONE) }
-
Mostrar un número en el dial, sin realizar la llamada.
intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:(+34)608033422")) startActivity(intent)
-
Buscar una ubicación en Google Maps.
intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=PC Box Arango")) startActivity(intent)
-
Acceder y visualizar la lista de contactos.
intent = Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/")) startActivity(intent)
-
Editar el primer contacto de la lista de contactos.
intent = Intent(Intent.ACTION_EDIT, Uri.parse("content://contacts/people/1")) startActivity(intent)
El manejo de permisos es fundamental para asegurar que la aplicación opere correctamente y respete la privacidad del usuario:
- Verificación de permisos: Se utiliza
checkSelfPermission
para verificar si la aplicación posee un permiso específico. - Solicitud de permisos:
requestPermissions
se emplea para solicitar permisos que no han sido otorgados. - Racionalización de permisos: Se utiliza
shouldShowRequestPermissionRationale
para explicar al usuario por qué se necesitan ciertos permisos si inicialmente los rechaza.
El manejo de permisos detallado es requerido a partir de Android 6.0 (API nivel 23). Las aplicaciones deben asegurarse de solicitar permisos en tiempo de ejecución para acceder a funcionalidades que implican privacidad o seguridad del usuario.
Este proyecto proporciona un marco sólido para entender cómo interactuar con componentes y servicios externos en Android a través de Intents
implícitos. Es esencial manejar adecuadamente los permisos para proteger la seguridad y privacidad del usuario mientras se provee una experiencia fluida y funcional.