Android: llamadas telefónicas
Android proporciona aplicaciones integradas para llamadas telefónicas, en algunas ocasiones es posible que necesitemos realizar una llamada telefónica a través de nuestra aplicación. Esto podría hacerse fácilmente mediante el uso de Intent implícito con acciones apropiadas. Además, podemos usar las clases PhoneStateListener y TelephonyManager, para monitorear los cambios en algunos estados de telefonía en el dispositivo.
Este capítulo enumera todos los pasos sencillos para crear una aplicación que se puede utilizar para realizar una llamada telefónica. Puede utilizar Android Intent para realizar llamadas telefónicas llamando a la función de llamada telefónica incorporada de Android. La siguiente sección explica las diferentes partes de nuestro objeto Intent necesarias para realizar una llamada.
Objeto de intención: acción para realizar una llamada telefónica
Usarás ACTION_CALLacción para activar la función de llamada telefónica incorporada disponible en el dispositivo Android. A continuación se muestra una sintaxis simple para crear una intención con la acción ACTION_CALL
Intent phoneIntent = new Intent(Intent.ACTION_CALL);
Puedes usar ACTION_DIAL action en lugar de ACTION_CALL, en ese caso, tendrá la opción de modificar el número de teléfono codificado antes de realizar una llamada en lugar de realizar una llamada directa.
Objeto de intención: datos / tipo para realizar una llamada telefónica
Para realizar una llamada telefónica a un número determinado 91-000-000-0000, debe especificar tel: como URI usando el método setData () de la siguiente manera:
phoneIntent.setData(Uri.parse("tel:91-000-000-0000"));
Lo interesante es que, para realizar una llamada telefónica, no es necesario especificar ningún dato o tipo de datos adicional.
Ejemplo
El siguiente ejemplo le muestra en la práctica cómo usar Android Intent para realizar llamadas telefónicas al número de teléfono dado.
Para experimentar con este ejemplo, necesitará un dispositivo móvil real equipado con el último sistema operativo Android; de lo contrario, tendrá que luchar con el emulador que puede no funcionar.
Paso | Descripción |
---|---|
1 | Utilizará Android Studio IDE para crear una aplicación de Android y nombrarla como Mi aplicación en un paquete com.example.saira_000.myapplication . |
2 | Modifique el archivo src / MainActivity.java y agregue el código requerido para encargarse de hacer una llamada. |
3 | Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario. Estoy agregando un botón simple para llamar al número 91-000-000-0000 |
4 | No es necesario definir constantes de cadena predeterminadas, Android Studio se encarga de las constantes predeterminadas. |
5 | Modifique AndroidManifest.xml como se muestra a continuación |
6 | Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación. |
A continuación se muestra el contenido del archivo de actividad principal modificado src/MainActivity.java.
package com.example.saira_000.myapplication;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonCall);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0377778888"));
if (ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(callIntent);
}
});
}
}
A continuación se mostrará el contenido de res/layout/activity_main.xml archivo -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="call 0377778888" />
</LinearLayout>
A continuación se mostrará el contenido de res/values/strings.xml para definir dos nuevas constantes -
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My Application</string>
</resources>
A continuación se muestra el contenido predeterminado de AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.saira_000.myapplication" >
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.saira_000.myapplication.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Intentemos ejecutar tu My Applicationsolicitud. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas, seleccione su dispositivo móvil como una opción y luego verifique su dispositivo móvil que mostrará la siguiente pantalla
Ahora usa Call para hacer una llamada telefónica como se muestra a continuación -