【问题标题】:Blackberry - EventInjector to activate speakerBlackberry - EventInjector 激活扬声器
【发布时间】:2011-10-28 11:50:31
【问题描述】:

我正在尝试为来电激活免提电话。我能够通过 EventInjector.KeyCodeEvent 以编程方式接听来电,但我无法使用 KeyCodeEvent 打开免提电话。

我通过以下方法注册了Phone listener。

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);

【问题讨论】:

  • 您的 KeyCodeEvent 代码执行时实际发生了什么?

标签: blackberry speaker


【解决方案1】:

尝试在线程中使用您的代码,并在调用密钥之间使用 Thread.sleep(100),就像这样。

这可能会起作用

EventInjector.invokeEvent(speakerKeyDown);
Thread.sleep(100);
EventInjector.invokeEvent(speakerKeyUp);
Thread.sleep(100);

【讨论】:

  • 它仍然无法正常工作。如何在引入上述代码后静音被激活而不是免提电话。
  • 之前有时它会激活静音键,但现在静音键总是被激活。
【解决方案2】:

要激活扬声器,您可以使用以下代码:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多