hi all,
in my app, i've registered a phone listener
on outgoing call, callInitiated event is generated twice..very strange
!!
while on incoming call, callIncoming event is generated once..which is proper
here i've put the code of my phoneListener class
Code:
package com.spec.bb.callreminder.controller;
import net.rim.blackberry.api.phone.Phone;
import net.rim.blackberry.api.phone.PhoneCall;
import net.rim.blackberry.api.phone.phonelogs.PhoneCallLogID;
import net.rim.blackberry.api.phone.AbstractPhoneListener;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.Ui;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.UiEngine;
import net.rim.device.api.system.Bitmap;
public class AddPhoneListener extends AbstractPhoneListener {
static public void registerOnStartup(){
AddPhoneListener phone_handler = new AddPhoneListener();
Phone.addPhoneListener(phone_handler);
}
public AddPhoneListener() {
util = new UtilityClass();
}
private void checkCall(String ehandler, int callid){
System.out.println("------------------------------>Status:::" + ehandler );
PhoneCall callInfo = Phone.getCall(callid);
//ONLY FOR INCOMING/OUTGOING CALL
if(ehandler.equals("callIncoming") || ehandler.equals("callInitiated")){
if ( callInfo != null ) {
System.out.println("------------------------------>Calling:::" + callInfo.getDisplayPhoneNumber());
}
}
}
}
}
//IMPLEMENTED LISTENER METHODS
// A call has been added to a conference call
public void callAdded(int callId)
{ }
// User answered a call
public void callAnswered(int callId)
{ }
// Conference call established
public void callConferenceCallEstablished(int callId)
{ }
// Network indicates a connected event
public void callConnected(int callId)
{ }
// Direct-connect call connected
public void callDirectConnectConnected(int callId)
{ }
// Direct-connect call disconnected
public void callDirectConnectDisconnected(int callId)
{ }
// Call disconnected
public void callDisconnected(int callId)
{ }
// User ended call
public void callEndedByUser(int callId)
{ }
// Call has been placed on "hold"
public void callHeld(int callId)
{ }
// New call has arrived
public void callIncoming(int callId)
{ checkCall("callIncoming", callId); }
// Outbound call initiated by the handheld
public void callInitiated(int callid)
{ checkCall("callInitiated", callid); }
// Call removed from a conference call
public void callRemoved(int callId)
{ }
// Call taken off of "hold"
public void callResumed(int callId)
{ }
// Call is waiting
public void callWaiting(int callid)
{ }
// Conference call has been terminated
// (all members disconnected)
public void conferenceCallDisconnected(int callId)
{ }
// Call failed
public void callFailed(int callId, int reason)
{ }
}
any Idea/suggestions???