Para capturar información de las llamadas telefónicas necesitamos una clase especial de tipo BroadcastReceiver. Dentro de esta clase creamos un objeto de la clase TelephonyManager y lo registramos como servicio del sistema. Por otro lado, tenemos otra clase que deriva de PhoneStateListener que implementa el método onCallStateChanged() para detectar las llamadas entrantes. El método onReceive() de la clase BroadcastReceiver recoge el número del llamante del objeto Intent usando las siguientes líneas de código para consultar el valor de la clave incoming_number:
Bundle bundle = intent.getExtras();
String phone_number = bundle.getString("incoming_number");
Puedes descargar el proyecto Netbeans de ejemplo aquí. Ten en cuenta que esta aplicación no dispone de interfaz gráfica. Tendrás que abrir el log del terminal donde ejecutes la aplicación y a continuación abrir un segundo terminal desde el que realizar la llamada. La salida del programa se producirá en el log, tal y como indica la figura. Detectará el teléfono del llamante y cuando descuelgues registrará esta situación.
No hay comentarios:
Publicar un comentario