трассировка входящего вызова вызывает ошибку в Blackberry

в моем приложении я пытаюсь отследить входящий вызов с помощью AbstractPhoneListener. Вызов отслеживается, но проблема в том, что он выдает ошибку, и мне нужно выйти из симулятора.

Я тестировал на устройстве, но когда поступает вызов, ничего не происходит, как я пытался сделать!!!!

ОШИБКА = "Чтение нарушения доступа с 0x00000004"

код:

public class CallTrace extends AbstractPhoneListener
{


    CallTrace()
    {

    }


    public void callIncoming(int callId)
    {
        PhoneCall call = Phone.getCall(callId);
        String callNumber = call.getDisplayPhoneNumber();l

        System.out.println("call traced!!!!!!!!");

    }   

}

код:

public class BackgroundListener extends Thread 
{  
    private static PersistentObject timeStore,NPZstore;
    private static Vector timeVector,mode;
    static CallTrace calltrace;
    String[] time1,time2;
    int time1Flag=0,time2Flag=0;

     public BackgroundListener()
     {   
         calltrace = new CallTrace();
     Phone.addPhoneListener(calltrace); 
         this.start();
     }
     boolean stopThread = false;

     public void run()
     {
          while (!stopThread)
          {   
        //do some coding here like matching of dates etc.that works well    
               try
               {
                   sleep(6000) ;
               }
               catch (Exception e)
               {
                    System.out.println("exception in background thread:"+e);
               }
          }
     }

     public synchronized void stop()
     {
          stopThread = true;
     }
     protected void onExit()
     {
          this.stop();
     }
  }

код:

public class HomeScreen extends UiApplication implements GlobalEventListener
{
    private static PersistentObject NPZstore;
    private static Vector mode;
    static boolean modeValue=false;
    static BackgroundListener obj;


    public static void main(String[] args)
    {
        if(args!=null && args[0].equals("gui"))
        {
            HomeScreen homescreen = new HomeScreen();
            homescreen.enterEventDispatcher();
        }
        else
        {
          obj = new BackgroundListener();       
        }
    }
    HomeScreen()
    {
        pushScreen(new WorkScreen());
    }


public void eventOccurred(long guid, int data0, int data1, Object object0,
  Object object1)
        {

    }
}
class WorkScreen extends MainScreen 
{
    CustomButtonField REDbutton,GREENbutton;
    HorizontalFieldManager hfmRED,hfmGREEN;
    private static PersistentObject NPZstore;
    private static Vector mode;
    boolean modeValue=false;
    static CallTrace calltrace;
    PopupScreen selectBluetoothType;
    final Bitmap background2;

    public WorkScreen()
    {
    //adding some fields here   
        }       
}

person Swati    schedule 09.06.2010    source источник
comment
концепция основных работ с автозапуском и системным модулем   -  person Swati    schedule 09.06.2010
comment
Я не думаю, что в этом коде есть какие-либо проблемы. Запустите clean.bat из папки симулятора.   -  person Vivart    schedule 09.06.2010
comment
Я тоже пробовал это, но безуспешно! внутри входящий вызов завершается, тогда ошибка не появляется. что делать. пожалуйста, помогите   -  person Swati    schedule 09.06.2010
comment
код у меня работает нормально, за исключением ArrayIndexOutOfBoundsException. я изменился так. if(args!=null && args.length › 0 && gui.equals(args[0])){ HomeScreen homescreen = new HomeScreen(); домашний экран.enterEventDispatcher(); }   -  person Vivart    schedule 09.06.2010
comment
хорошо, я не получаю такой ошибки, как вы говорите. но все же этот код безопасен. все же моя проблема такая же. не понимаю, что происходит не так   -  person Swati    schedule 09.06.2010


Ответы (1)


Это похоже на ошибку Windows, вызванную сбоем симулятора. Так что это не ошибка в вашем коде, а, вероятно, ошибка в симуляторе. Я бы посоветовал загрузить и установить другой симулятор, даже если он той же модели выбрать последнюю сборку. Симуляторы, поставляемые с JDE, обычно устарели.

person Marc Novakowski    schedule 10.06.2010