Tag Archive Desarrollo de aplicaciones móviles

Intent implícito: Aplicación que realiza una llamada telefónica en Android

Crea tu propia aplicación que hace uso del teléfono en Android, y aprende a utilizar un intent implícito en Android, hacer uso de permisos en tu aplicación móvil, y diferenciar entre versiones de Android.

Intent implícito: Aplicación que realiza una llamada telefónica en Android

Un intent implícito es una acción que invoca cualquier aplicación que el dispositivo puede utilizar para realizar una determinada función. Por ejemplo, no es necesario crear código propio para hacer una llamada telefónica, en vista de que Android tiene ya una aplicación para el Teléfono. En vez de eso, podemos enviar la orden de abrir la aplicación teléfono y pasarle el número que desamos marcar, considerando que el usuario puede o no dar permiso para utilizar la app del teléfono.

Vamos a realizar lo siguiente:

  1. Crear una interfaz de usuario donde se ingrese un número telefónico y se pulse un botón para hacer la llamada.
  2. Codificar una función de escucha para saber cuándo fue pulsado el botón.
  3. Determinar la versión de Android (esto es necesario pues en versiones nuevas hay cambios en la forma de autorizar a la aplicación el uso de la app de teléfono).
  4. Crear un intent de llamada telefónica.
  5. Determinar si el usuario ha autorizado el uso de la app de teléfono.
  6. Ejecutar el intent.

Esta es la interfaz que deseamos realizar:

Interfaz para la aplicación que ejecuta un intent implícito en Android

Interfaz para la aplicación que ejecuta un intent implícito en Android

Para esto creamos un nuevo Activity en blanco. Yo lo he nombrado ThirdActivity, por lo que dispongo del archivo activity_third.xml en el que he trabajado el siguiente código:

Note lo siguiente:

  1. Utilizo un EditText con un inputType=“phone”, lo que permite al usuario utilizar el teclado numérico para teclear un número telefónico. Su id es editTextPhone.
  2. Utilizo un ImageButton al que le he colocado la imagen de un teléfono usando src=“@drawable/phone” (debe existir un archivo phone.png en la carpeta drawable. El id de este botón es imageButtonPhone.
  3. Creo otros componentes que utilizaré más adelante.

En mi archivo ThirdActivity.java utilizo el siguiente código:

 

Aquí se realiza lo siguiente:

  1. Enlazamos los componentes de interfaz gráfica xml con objetos de Java: 

 editTextPhone = (EditText) findViewById(R.id.editTextPhone);

editTextWeb = (EditText) findViewById(R.id.editTextWeb);

imgBtnPhone = (ImageButton) findViewById(R.id.imageButtonPhone);

imgBtnWeb = (ImageButton) findViewById(R.id.imageButtonWeb);

imgBtnCamera = (ImageButton) findViewById(R.id.imageButtonCamera);

2. Leemos el número telefónico y determinamos si está vacío:

 String phoneNumber = editTextPhone.getText().toString();

       if (phoneNumber != null){

3. Determinamos la versión de Android que utiliza el usuario y de acuerdo a eso llamamos una función u otra.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){ requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, TEL_COD); } else{ OlderVersions(phoneNumber); }

4. Para versiones nuevas vemos si la aplicación cuenta con el permiso para usar el teléfono: 

  if (permisos.equals(Manifest.permission.CALL_PHONE)){

5. Para esto en el archivo AndroidManifest.xml deben existir las siguientes lineas de código:

 <uses-permission android:name=”android.permission.CALL_PHONE” />

 <uses-feature android:name=”android.hardware.telephony” android:required=”false” />

6. Si el permiso existe, crea un intent para hacer una llamada telefónica, pasando como parámetro el número que el usuario escribió. 

if (result == PackageManager.PERMISSION_GRANTED){

                        String phoneNumber = editTextPhone.getText().toString();

                        Intent intentCall = new Intent(Intent.ACTION_CALL, Uri.parse(“tel:”+phoneNumber));

7. Comprueba nuevamente si el usuario dio permiso y en tal caso, realiza el intent ejecutando la llamada al número solicitado.

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED) return;

                           startActivity(intentCall);

7. Para versiones más antiguas, el programa únicamente determina si la aplicación tiene permiso de hacer uso de la app de teléfono, en cuyo caso, realiza la llamada.

int result = checkCallingOrSelfPermission(Manifest.permission.CALL_PHONE);

                if ( result == PackageManager.PERMISSION_GRANTED){

                startActivity(intentCall);}

 

Nuestra app debe realizar lo siguiente:

App que realiza un intent implícito

App que realiza un intent implícito

 

Referencias

  1. Android.com (2018). Intents y filtros de intents. Disponible en [https://developer.android.com/guide/components/intents-filters?hl=es-419]
¿Qué te pareció este artículo?
  • Excelente 
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 

Tags, ,

Abrir un Activity en Android pasando datos

Veamos cómo abrir un Activity en Android y cómo pasar un dato de tipo String reutilizandolo en su interfaz de usuario.

¿Qué te pareció este artículo?
  • Excelente 
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 

Tags, , Read More

Agregar funcionalidad a un Button en Android

Una de las primeras nociones de programación móvil es agregar funcionalidad a un Button en Android. Veamos los pasos para realizarse.

¿Qué te pareció este artículo?
  • Excelente 
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 

Tags, Read More

Aprende a trabajar con Android Studio

En éste artículo vemos cómo trabajar con Android Studio, lo que necesitas para operarlo, su instalación, cómo crear un proyecto y cómo crear un AVD, entre otras cosas.

¿Qué te pareció este artículo?
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 
  • Excelente 

Tags, , Read More

Características de Android: antecedentes de la plataforma

Analizaremos los antecedentes, así como las características de Android que han hecho de esta plataforma una de las más utilizadas por los usuarios de aplicaciones móviles.

¿Qué te pareció este artículo?
  • Excelente 
  • Interesante 
  • Regular 
  • No era lo que buscaba 
  • Poco informativo 

Tags, , Read More