我一直致力于使用“KeyEvent”方法自动接听电话,很多人似乎都会发誓。
此方法适用于模拟器,但在实际设备上无效。
我正在使用的代码如下:
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上执行此操作的可靠方法。*?
答案 0 :(得分:0)
您在耳机按钮事件后发送假耳机连接事件。未连接的耳机如何接听电话?首先连接假耳机,然后发送假按钮。这个对我有用。