最近研究自动接听,发现2.3以上有permission android.permission.MODIFY_PHONE_STATE 的错误,这里给出了一种解决方案,仅供参考。
/**
* 自动接听
*/
public void autoAnswerPhone() {
try {
ITelephony itelephony = getITelephony();
itelephony.silenceRinger();
itelephony.answerRingingCall();
} catch (Exception e) {//2.3以上执行以下代码实现自动接听
Intent intent = new Intent("android.intent.action.MEDIA_BUTTON");
KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK);
intent.putExtra("android.intent.extra.KEY_EVENT",keyEvent);
context.sendOrderedBroadcast(intent,"android.permission.CALL_PRIVILEGED");
intent = new Intent("android.intent.action.MEDIA_BUTTON");
keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);
intent.putExtra("android.intent.extra.KEY_EVENT",keyEvent);
context.sendOrderedBroadcast(intent,"android.permission.CALL_PRIVILEGED");
}
}
本文提供了一种解决2.3以上版本Android系统中自动接听电话的问题方案,通过使用特定的Intent与KeyEvent来模拟接听操作,绕过MODIFY_PHONE_STATE权限限制。

3319

被折叠的 条评论
为什么被折叠?



