2010-06-09 48 views
0

我尝试使用AbstractPhoneListener跟踪传入的呼叫。 通话得到跟踪,但问题是,它产生了一个错误,我不得不退出模拟器跟踪来电在我的应用程序中产生黑莓的错误

我在设备上测试,但是当一个电话到达时,没有发生任何事情,因为我试图做!

ERROR = “访问冲突从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 
     }  
} 
+0

与自动启动和系统模块主要工作的概念 – Swati 2010-06-09 09:58:26

+0

我不认为这个代码中有任何问题。从模拟器文件夹运行clean.bat。 – Vivart 2010-06-09 10:26:06

+0

我也试过,但没有成功!!!!!我发现了一些奇怪的东西。如果我在模拟器上运行这个没有使用任何断点,然后错误弹出,但如果我运行使用断点来测试代码并尝试断开之前代码内部收到呼叫完成,然后没有错误弹出up.what做。请帮助 – Swati 2010-06-09 10:53:31

回答

0

这看起来像一个Windows错误原因d由模拟器崩溃。所以这不是代码中的错误,但可能是模拟器中的错误。我建议downloading and installing a different simulator - 即使它是相同的模型选择最新的版本。 JDE附带的模拟器通常过时。

+0

我试过不同的模拟器和我的代码工作。谢谢很多! !!!!!!! – Swati 2010-06-16 04:05:05

相关问题