我正在尝试构建一个简单的示例应用程序,以演示如何在Nexus 7上进行简单的SIP呼叫。该设备目前运行Android 4.2.1。
LogCat显示错误:
SipBroadcastRequest / SIP VOIP not supported: com.android.phone.SIP_REMOVE_PHONE
我从API文档(和代码)中看到,如果SipManager.isApiSupported(Context context)
返回false,则会发生这种情况。为了保险起见,我都进行了检查:
SipManager.isVoipSupported(this);
SipManager.isApiSupported(this);
两者都返回true。我还从API代码中看到,如果api调用返回false,则SipManager.newInstance(Context context)
将返回null
。当我使用SipManager.newInstance(this)
创建管理器时,我得到了一个有效的管理器。
我看到很多类似问题的帖子,但没有发现任何报告SipManager.isVoipSupported(Context context)
调用返回true
的帖子。有什么想法吗?
注意:我不确定这是否重要,但是cSipSimple(另一个Android SIP / Voip应用程序)在此设备上确实可以工作。
更新(12/20/12):我尝试了pboy的建议,使用SipDemo也无法工作。该应用程序和我的应用程序都在注册步骤中失败。使用调试器,我在SipRegistrationListener
的onRegistrationFailed
回调中断点。从这里我可以看到一个int errorCode
为-9,一个String errorMessage
为“0”。我查看了此错误代码,并对应以下内容(摘自SIP API文档):
public static final int IN_PROGRESS
从API级别9开始添加
客户端正在事务中,无法启动新事务。
常量值:-9(0xfffffff7)
我没有其他SIP程序在运行。我的应用程序是最新安装的,当前也没有运行。我不知道它可能处于哪个其他事务中。