Blackberry - スピーカーを有効にするEventInjector

着信のためにスピーカーフォンをアクティブにしようとしています。 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);
1
KeyCodeEventコードの実行時に実際に何が起こっていますか?
追加された 著者 Michael Donohue,

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);
0
追加された

スレッド内でコードを使用し、そのようなキーの呼び出しの間にThread.sleep(100)を使用してください。

これがうまくいくかもしれない

EventInjector.invokeEvent(speakerKeyDown);
Thread.sleep(100);
EventInjector.invokeEvent(speakerKeyUp);
Thread.sleep(100);
0
追加された
まだ動作していません。話し手の電話の代わりに上記のコードミュートがどのように導入されたのか
追加された 著者 venu88,
以前はある時点でミュートキーをアクティブにしていましたが、ミュートキーは常にアクティブになっています。
追加された 著者 venu88,