Android ответить на входящий звонок

Я перехватил входящий звонок и показываю свою активность на стандартном экране. На этой активности у меня есть кнопкиответ на звонок а также "отклонить звонок ", Но я могу'сделать это работает.

Я нашел два решения программно ответить / отклонить телефонный звонок:

С ITelephony.aidl, но он работает только до api v10. Так что это неверный путь

Со следующим:

private void acceptCall(Context context) {
  Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
        KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
  context.sendOrderedBroadcast(buttonDown,
        "android.permission.CALL_PRIVILEGED");
    // froyo and beyond trigger on buttonUp instead of buttonDown
  Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
        KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
  context.sendOrderedBroadcast(buttonUp,
        "android.permission.CALL_PRIVILEGED");
}


private void acceptCall(Context context) {
  Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
  context.sendOrderedBroadcast(buttonDown,
        "android.permission.CALL_PRIVILEGED");
  // froyo and beyond trigger on buttonUp instead of buttonDown
  Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
        KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
  context.sendOrderedBroadcast(buttonUp,
        "android.permission.CALL_PRIVILEGED");
}

отсюдаhttp://www.codeproject.com/Tips/578817/Reject-and-Accept-an-Incoming-Call

Однако ничего! Я нажимаю кнопки и вызываю методы выше, соответственно, и ничего не происходит. Я проверил это на нескольких устройствах, и результат тот же.

Хм, тогда мне удалось ответить на samsung nexus one, но не на HTC со смыслом. Отклонить функцию не работает на обоих.

Ответы на вопрос(4)

Ваш ответ на вопрос