2011-09-06 9 views
1

こんにちはみんな私のアプリケーションでEventInjectorを使用してすべての着信を自動的に拒否しようとしています。私のMainScreenはPhoneListenerを実装しています。以下は私のコードですBlackberry - EventInjectorを使用して着信を無視する

public void callIncoming(int callId) { 
      requestForeground(); 
      final PhoneCall call = Phone.getCall(callId); 
      final String number = call.getDisplayPhoneNumber(); 
      System.out.println(number); 
      EventInjector.KeyCodeEvent pressEndKey = new EventInjector.KeyCodeEvent( 
        KeyCodeEvent.KEY_DOWN, (char) Keypad.KEY_END, 0, 100); 
      EventInjector.KeyCodeEvent releaseEndKey = new EventInjector.KeyCodeEvent( 
        KeyCodeEvent.KEY_UP, (char) Keypad.KEY_END, 0, 100); 

      EventInjector.invokeEvent(pressEndKey); 
      EventInjector.invokeEvent(releaseEndKey); 
     } 

このコードは機能しません。他の意味では無効です。着信通話画面はポップアップし続け、操作が行われるまでは離れることはありません。

+0

これはそれに影響を与えるかどうかは知りませんが、あなたのアプリケーションは、「入力シミュレーション」権限を許可するために有効にしているのでしょうか? –

+0

はい、可能です。シムのITポリシーでEventInjectionも有効です – RapsFan1981

+0

このコードブロックにぶつかっていることをデバッグしましたか? – jprofitt

答えて

4

このリンクをチェックすると機能します!

http://www.codinguru.com/2011/08/block-incoming-call-in-blackberry.html

public void callIncoming(int callId) { 
     final PhoneCall call = Phone.getCall(callId); 
     final String number = call.getDisplayPhoneNumber(); 
     System.out.println(number); 

     EventInjector.KeyCodeEvent pressEndKey = new EventInjector.KeyCodeEvent(KeyCodeEvent.KEY_DOWN, (char) Keypad.KEY_END, 0, 100); 
     EventInjector.KeyCodeEvent releaseEndKey = new EventInjector.KeyCodeEvent(KeyCodeEvent.KEY_UP, (char) Keypad.KEY_END, 0, 100); 

     try { 
      Thread.sleep(1000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
     EventInjector.invokeEvent(pressEndKey); 
     EventInjector.invokeEvent(releaseEndKey); 
    } 
+0

プライベートブログへのリンクです。 –

関連する問題