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 со смыслом. Отклонить функцию не работает на обоих.