Cómo recibir llamadas telefónicas de Android mediante programación

Debe usar los receptores de difusión en su aplicación.

Puede administrarlo siguiendo los siguientes pasos:

Detalles del archivo AndroidManifest.xml:

1. Declarar receptor en AndroidManifest

< receptor android: name = “. IncomingCall “>

<action android: name = " android.intent.action.PHONE_STATE ” />

2. Otorgue permiso de lectura del estado del teléfono en AndroidManifest

Código completo para el archivo AndroidManifest.xml:

<manifest xmlns: android = "Ankit"
package = “com.androidexample.broadcastreceiver”
android: versionCode = “1”
android: versionName = “1.0”>

<aplicación
android: allowBackup = “true”
android: icon = “@ drawable / ic_launcher”
android: label = “@ string / app_name”
android: theme = “@ style / AppTheme”>
<actividad
android: name = “com.androidexample.broadcastreceiver.BroadcastPhoneStates”
android: label = “@ string / app_name”>





<usa-sdk
android: minSdkVersion = “8”
android: targetSdkVersion = “17” />

Detalles del archivo IncomingCall.java:

He hecho un receptor de eventos de difusión en este archivo

1. Creó la clase IncomingCall con la clase BroadcastReceiver extendida

IncomingCall de clase pública extiende BroadcastReceiver

2. Crear receptor de método ()

public void onReceive (contexto de contexto, intento de intención)

3. Crear oyente para leer el estado del teléfono

// objeto de clase de MANAGER DE TELEFONÍA para registrar un listado
TelephonyManager tmgr = (TelephonyManager) contexto
.getSystemService (Context.TELEPHONY_SERVICE);

// Crear Listner
MyPhoneStateListener PhoneListener = new MyPhoneStateListener ();

// Registrar escucha para LISTEN_CALL_STATE
tmgr. escuchar ( PhoneListener , PhoneStateListener. LISTEN_CALL_STATE );

4. Crear clase de lista de estado del teléfono

Cuando llega una nueva llamada, el método onCallStateChanged llama

clase privada MyPhoneStateListener extiende PhoneStateListener {

public void onCallStateChanged (int estado, String entranteNúmero) {

// Log.d (“MyPhoneListener”, estado + “número de entrada:” + número de entrada);

// state = 1 significa cuando el teléfono está sonando
if (estado == 1) {

Cadena msg = “Nuevo evento de llamada telefónica. Número entrante:” + entranteNúmero;
int length = Toast.LENGTH_LONG;
Toast toast = Toast.makeText (pcontext, msg, duración);
tostada.show ();

}
}
}

Espero que pueda administrar sus llamadas ahora con su aplicación.

Gracias