Android SIP API:支持显示,但错误“不支持”

时间:2012-12-19 19:46:24

标签: android api sip

我正在尝试构建一个快速示例应用程序,以演示与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);创建经理时,我会找到一位有效的经理。

我发现很多针对类似问题的帖子,但没有找到true来自SipManager.isVoipSupported(Context context)来电的onRegistrationFailed报告。有什么想法吗?

注意:我不确定这是否重要,但cSipSimple(另一个用于Android的SIP / Voip应用程序)可以在此设备上运行。

更新(12/20/12):我按照pboy的建议尝试了SipDemo。这也行不通。在注册步骤中,该应用和我的应用都失败了。使用调试器,我打破了SipRegistrationListener的{​​{1}}回调。从这里我可以看到int errorCode的-9和String errorMessage的“0”。我查找了这个错误代码,它对应于以下内容(取自SIP API文档):

public static final int IN_PROGRESS  
  

在API级别9中添加   客户处于交易中,无法发起新的交易   常数值:-9(0xfffffff7)

我没有运行其他SIP程序。我的应用程序只是刚刚安装,目前还没有运行。我不确定它会在中间进行什么其他交易?

1 个答案:

答案 0 :(得分:0)

我希望您在清单中提及以下权限,

<uses-permission android:name="android.permission.USE_SIP" />   
<uses-permission android:name="android.permission.INTERNET" />   
<uses-feature android:name="android.hardware.sip.voip" android:required="true" />   
<uses-feature android:name="android.hardware.wifi" android:required="true" />   
<uses-feature android:name="android.hardware.microphone" android:required="true" />

另外请确保您在使用wifi连接时进行测试,因为当您使用wifi而不是与其他网络连接时,Android SIP会提供连接。