我正在制作一个 SIP 应用程序,除了一件事之外,我已经完成了我想要的几乎所有工作。发生 SIP 呼叫时,我无法启动活动。
我正在使用一个 SIP 库,该库启动一个“电话”服务,该服务处理来电等处理,当我创建一个“电话”实例时,我会注册监听器,详细说明我想要发生的事情。因此,为了处理来电,我注册了一个“OnIncommingCall”监听器。
如果应用程序当前未打开,我希望它启动应用程序。所以我的听众是:
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
但是,当来电时,它会响铃但应用程序不会打开,但是如果我在通话仍在响铃时从启动器打开应用程序,那么它将打开并知道通话在那里。
问题是因为我试图启动定义监听器的 Activity 吗?
我已经尝试了各种标志和组合(SINGLE_TOP 等),但我无法让它工作。
任何帮助,将不胜感激!
DJOodlen