1
我一直在努力使用「KeyEvent」方法自動應答電話,這種方法似乎有如此多的人似乎發誓。Autoanswer:傳統智慧似乎不正確
此方法在模擬器上工作,但不工作在實際設備上。
我使用的代碼提供如下:
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
ctx.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
ctx.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
headSetUnPluggedintent.putExtra("state", 1); // 0 = unplugged 1 = Headset with microphone 2 = Headset without microphone
headSetUnPluggedintent.putExtra("name", "Headset");
// TODO: Should we require a permission?
ctx.sendOrderedBroadcast(headSetUnPluggedintent, "android.permission.CALL_PRIVILEGED");
會發生什麼事是,在模擬器上的答案「按鈕」似乎工作。不幸的是,在實際的手機上,它看起來像正在發送的KeyEvent正被完全忽略。
有沒有人找到一種可靠的方式來執行Android 2.3上的這個動作。