2011-09-06 4 views
1

Bonjour à tous 'J'essaie d'utiliser un EventInjector dans mon application pour rejeter automatiquement tous les appels entrants. Mon MainScreen implémente PhoneListener. Ci-dessous est mon codeBlackberry - using EventInjector pour ignorer l'appel entrant

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

Ce code ne fonctionne pas, en d'autres mots, n'a aucun effet. L'écran d'appel entrant continue à apparaître et ne disparaîtra pas jusqu'à ce qu'une action soit prise.

+0

Je ne sais pas si cela aura un impact, mais que votre application a l'autorisation « Simulation d'entrée » se tourna vers Autoriser? –

+0

Oui, activé EventInjection dans la stratégie informatique de la simulation. – RapsFan1981

+0

L'avez-vous débogué pour vous assurer qu'il touche ce bloc de code? – jprofitt

Répondre

4

Vérifiez ce lien, ça fonctionne!

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

Le lien est sur un blog privé. –

Questions connexes