¿Cómo hacer una llamada telefónica desde tu aplicación de Android?

En este artículo, creará una aplicación básica de Android que se puede usar para llamar a algún número a través de su aplicación de Android.

Puede hacerlo con la ayuda de Intent with action como ACTION_CALL . Básicamente, Intent es un objeto de mensaje simple que se usa para comunicarse entre componentes de Android, como actividades, proveedores de contenido, receptores de transmisión y servicios, aquí se usa para hacer llamadas telefónicas. Esta aplicación básicamente contiene una actividad con texto de edición para escribir el número de teléfono en el que desea realizar una llamada y un botón para llamar a ese número.

  • Paso 1. Código de permiso en el archivo Android-Manifest.xml
    Debe obtener el permiso del usuario para la llamada telefónica y para eso se agrega el permiso CALL_PHONE en el archivo de manifiesto. Aquí está el código del archivo de manifiesto:

    Android-manifiesto.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <manifest xmlns:androclass="http://schemas.android.com/apk/res/android"  
        package="com.geeksforgeeks.phonecall"  
        android:versionCode="1"  
        android:versionName="1.0" >  
        <uses-sdk  
            android:minSdkVersion="8"  
            android:targetSdkVersion="16" />  
        <!--permission for phone call-->
        <uses-permission android:name="android.permission.CALL_PHONE" />  
        <application  
            android:icon="@drawable/ic_launcher"  
            android:label="@string/gfg"  
            android:theme="@style/AppTheme" >  
            <activity  
                android:name="com.geeksforgeeks.phonecall.MainActivity"  
                android:label="@string/gfg" >  
                <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />  
                    <category android:name="android.intent.category.LAUNCHER" />  
                </intent-filter>  
            </activity>  
        </application>  
    </manifest>  
  • Paso 2. activity_main.xml
    activity_main.xml contiene un diseño relativo que contiene texto de edición para escribir el número de teléfono en el que desea realizar una llamada telefónica y un botón para iniciar la intención o realizar una llamada:

    actividad_principal.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!--Relative Layout-->
    <RelativeLayout
        xmlns:androclass="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        tools:context=".MainActivity">
       <!--Edit text for phone number-->
        <EditText  
            android:id="@+id/editText"  
            android:layout_marginTop="30dp" 
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_alignParentTop="true"  
            android:layout_centerHorizontal="true"  
            />  
       <!--Button to make call-->
        <Button  
            android:id="@+id/button"  
            android:layout_marginTop="115dp"
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"
            android:text="Make Call!!" 
            android:padding="5dp" 
            android:layout_alignParentTop="true"  
            android:layout_centerHorizontal="true"     
             />  
    </RelativeLayout>
  • Paso 3. MainActivity.java
    En la actividad principal, el objeto Intent se crea para redirigir la actividad al administrador de llamadas y el atributo de acción de la intención se establece como ACTION_CALL. utilizar para llamar a ese número de teléfono. setOnClickListener se adjunta al botón con el objeto de intención para hacer la intención con la acción como ACTION_CALL para hacer una llamada telefónica. Aquí está el código completo:

    MainActivity.java

    package com.geeksforgeeks.phonecall;
      
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.content.Intent;
    import android.widget.EditText;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.net.Uri;
    import android.widget.Button;
      
    public class MainActivity extends AppCompatActivity {
      
        // define objects for edit text and button
        EditText edittext;
        Button button;
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            // Getting instance of edittext and button
            button = findViewById(R.id.button);
            edittext = findViewById(R.id.editText);
      
            // Attach set on click listener to the button
            // for initiating intent
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View arg)
                {
      
                    // getting phone number from edit text
                    // and changing it to String
                    String phone_number
                        = edittext.getText().toString();
      
                    // Getting instance of Intent
                    // with action as ACTION_CALL
                    Intent phone_intent
                        = new Intent(Intent.ACTION_CALL);
      
                    // Set data of Intent through Uri
                    // by parsing phone number
                    phone_intent
                        .setData(Uri.parse("tel:"
                                           + phone_number));
      
                    // start Intent
                    startActivity(phone_intent);
                }
            });
        }
    }

Producción:

Publicación traducida automáticamente

Artículo escrito por Rishabh007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *