в моем приложении я пытаюсь отследить входящий звонок, используя 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
}
}