我正在尝试为来电激活扬声器电话。我可以通过EventInjector.KeyCodeEvent以编程方式接受来电,但我无法使用KeyCodeEvent打开扬声器电话。
我通过以下方法注册了Phone听众。
Phone.addPhoneListener(instance);
然后我尝试用callConnected
方法激活说话者,如下所示。
EventInjector.KeyCodeEvent speakerKeyDown =
new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,
(char) Keypad.KEY_SPEAKERPHONE, KeypadListener.STATUS_NOT_FROM_KEYPAD);
EventInjector.KeyCodeEvent speakerKeyUp =
new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP,
(char) Keypad.KEY_SPEAKERPHONE, KeypadListener.STATUS_NOT_FROM_KEYPAD);
EventInjector.invokeEvent(speakerKeyDown);
EventInjector.invokeEvent(speakerKeyUp);
答案 0 :(得分:0)
尝试在线程中使用您的代码,并在调用密钥之间使用Thread.sleep(100)。
这可能会起作用
EventInjector.invokeEvent(speakerKeyDown);
Thread.sleep(100);
EventInjector.invokeEvent(speakerKeyUp);
Thread.sleep(100);
答案 1 :(得分:0)
要激活扬声器,您可以使用以下代码:
EventInjector.KeyCodeEvent speakerKeyDown = new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,(char)Keypad.key(2359296),KeypadListener.STATUS_NOT_FROM_KEYPAD);
EventInjector.KeyCodeEvent speakerKeyUp = new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP,(char)Keypad.key(2359296),KeypadListener.STATUS_NOT_FROM_KEYPAD);
EventInjector.invokeEvent(speakerKeyDown);
try{Thread.sleep(500);}catch(Exception e){}
EventInjector.invokeEvent(speakerKeyUp);