25 Ago

Realizar una llamada telefónica desde una app en xamarin

¿Cómo  utilizar un botón para realizar llamada telefónica desde el móvil ?

Tenemos que tener en cuenta que vamos a trabajar con 3 archivos. Suponiendo que estamos en un proyecto recién comenzado usaremos los nombres que vienen por defecto.
  1. Modificaremos AndroidManifest.xml para dar permiso a las llamadas telefónicas.
  2. Usaremos Main.axml para insertar el botón de llamada.
  3. En el MainActivity.cs haremos toda la lógica que nos permitirá realizar la llamada telefónica desde al app.
1º Si pulsamos en el “solution explorer” encima de “propeties” nos saldrán las opciones de AndroidManifest.Xml . En este archivo es dónde tendremos que poner todos los permisos que pedirá a la hora de instalar la app y que necesita para que funcione.
Entramos en la pestaña android manifest de properties y tenemos que marcar la opción CALL_PHONE . Con esto ya tendremos permiso para realizar la llamada telefónica.
2º Tendremos que crear un botón en el archivo “main.axml” que está en la carpeta resources/layout.
Para crearlo solo tenemos que añadir de forma visual desde toolbox si estamos en la visión diseño o añadir el siguiente texto en la versión de código. Recordar que hay que poner el número de teléfono dentro del texto del botón.
 <quitarbutton android:id="@+id/callButton1" android:layout_height="wrap_content" 
android:layout_width="wrap_content" android:text="555-1212">

3º Ahora iremos al archivo MainActivity.cs donde desarrollaremos la lógica.

Primeramente en el método Oncreate, tenemos que seguir los siguientes pasos:

  1. Crear un botón y obtener los datos del botón creado en main.axml
  2. Llamar a la función que crearemos después.
Button button1 = FindViewById<quitarbutton>(Resource.Id.callButton1);
button1.Click += delegate {
    CallNumber(button1.Text);
   };

Ahora tendremos que crear un método también en MainActivity.cs para hacer la lógica.

  1. Se creará una variable del tipo alerta, para que lance un mensaje.
  2. Establecemos el texto de ese mensaje que será llamar : al telefóno
  3. En el caso de que sea positiva la contestación y le demos a llamar, lanzaremos la acción de llamar
  4. En caso negativo cancelaremos y saldremos a la pantalla principal.
private void CallNumber(string phoneNumber)
  {
   var callDialog = new AlertDialog.Builder(this);
   callDialog.SetMessage("Llamar" + phoneNumber);

   
   callDialog.SetPositiveButton("Llamar", delegate {
    var callIntent = new Intent(Intent.ActionCall);
    callIntent.SetData(Android.Net.Uri.Parse("tel:" + phoneNumber));
    StartActivity(callIntent);
   });
   callDialog.SetNeutralButton("Cancel", delegate { });

   callDialog.Show();
  }
Share this

Comments (1)

Paco Rodríguez
13 agosto, 2018 Reply

Y en IOS ?

Leave a reply