¿Cómo responder programáticamente a una llamada en Android 4.0.3?

Entonces, como indica el sujeto, necesito poder contestar una llamada telefónica programáticamente en Android 4.0.3 en un HTC OneX. He leído varios lugares que losMODIFY_PHONE_STATE Google ha revocado el permiso, por lo que para realizar esta tarea necesita una solución.

He mirado en dos avenidas hasta ahora:

(1) Siguiendo la publicación de Guyaquí y usando un BroadcastReceiver

(2) Usar el siguiente código para intentar golpear un evento clave a través de un comando de shell.

final Runtime r = Runtime.getRuntime();
    try {
        Process process = r.exec("input keyevent 5");
        InputStream stream = process.getErrorStream();
        log.v("Process Error Stream: " +stream.toString());
        log.v("Sending shell command to Answer Call");
    } catch (Exception e) {
        log.v("Stack Trace: " + e.getStackTrace().toString());
        e.printStackTrace();
    } 

Uso esto porque Keyevent 5 es KeyEvent.CALL de acuerdo con Google y funciona en adb usando

adb shell input keyevent 5

Mi pregunta es, ¿qué estoy haciendo mal? Debido a que, lógicamente, ambos métodos tienen sentido, pero ninguno de ellos funciona ni genera errores de tiempo de ejecución de ningún tipo.

Aclamaciones

Respuestas a la pregunta(3)

Su respuesta a la pregunta