I’m making a SIP application, and I’ve got pretty much everything working that i want to except one thing. I cant get the activity to launch when a SIP call occurs.
I’m working with a SIP library that starts a ‘phone’ service which deals with the handling of incoming calls etc, and when i create an instance of the ‘phone’ I then register listeners which detail what i want to happen. So to handle incoming calls i register an ‘OnIncommingCall’ listener.
If the app isn’t currently open at the time i want it to launch the app. so my listener is:
thisPhone.setIncomingCallListener(new OnIncomingCallListener()
{
public void OnIncomingCall(String remoteContact, int accountId)
{
if(MainActivity.this.getIsOpen())
{
MainActivity.this.setIsCallIncomming(true);
MainActivity.this.setCurrentCaller(remoteContact);
MainActivity.this.setMainUIEles();
}
else
{
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("isCallIncomming", true);
i.putExtra("currentCaller", remoteContact);
i.putExtra("isRegistered", true);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
}
}); //incoming call listener
However when the call comes, it rings but the app wont open, but if i open the app from the launcher whilst the call is still ringing then it will open and know the call is there.
Is the problem because I’m trying to start the Activity which defined the listener?
I’ve tried all sorts of flags and combinations (SINGLE_TOP etc) can i can’t get it to work.
Any help would be appreciated!
DJOodlen
Well this was a silly mistake on my part.
After putting in some toasts so I could see where in the code each bit was going I realised that getIsOpen() never returned false. That’s because it wasn’t being called on the onPause() method as wells as the onDestroy() method…
Ooops!