Como responder programaticamente uma chamada no Android 4.0.3?

Assim, como o assunto afirma que eu preciso ser capaz de responder a um telefonema programaticamente no Android 4.0.3 em um HTC OneX. Eu li vários lugares que oMODIFY_PHONE_STATE A permissão foi revogada pelo Google, então, para fazer essa tarefa, você precisa de uma solução.

Eu olhei em dois caminhos até agora:

(1) A seguir a postagem de GuyAqui e usando um BroadcastReceiver

(2) Usando o seguinte código para tentar acertar um evento chave através de um comando 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();
    } 

Eu uso isso porque keyevent 5 é KeyEvent.CALL de acordo com o Google e funciona em adb usando

adb shell input keyevent 5

Minha pergunta é: o que estou fazendo de errado? Porque logicamente ambos os métodos fazem sentido, mas não estão funcionando ou mesmo gerando erros de tempo de execução de qualquer tipo.

Felicidades

questionAnswers(3)

yourAnswerToTheQuestion