Blackberry - EventInjector 激活扬声器

Posted

技术标签:

【中文标题】Blackberry - EventInjector 激活扬声器【英文标题】:Blackberry - EventInjector to activate speaker 【发布时间】: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 代码执行时实际发生了什么? 【参考方案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);
tryThread.sleep(500);catch(Exception e)
EventInjector.invokeEvent(speakerKeyUp);

【讨论】:

以上是关于Blackberry - EventInjector 激活扬声器的主要内容,如果未能解决你的问题,请参考以下文章

将 FMS RTMP 直播流转换为 BlackBerry 的 RTSP

BlackBerry - 带有 CheckBoxField 的 TreeField?

BlackBerry:检索当前年、月、日

BlackBerry - 模拟 KeyPress 事件

BlackBerry 软件全球现已部署超过2.15亿辆汽车

Blackberry - 带动画的加载/等待屏幕