SipManager.newInstance返回null。

4
我会翻译中文。以下是需要翻译的内容:

我实现了一个简单的SIP客户端应用程序,用于接收电话。我查看了官方手册并从中获取了代码。

我注意到

SipManager.newInstance(getApplicationContext());

返回null。文档表示这是因为设备不支持SIP API。然而,我使用Android 7.0的LG G6,并成功从Google Play测试了第三方SIP客户端。因此,我怀疑API是否真的不受支持。我该如何检查?

我的清单文件具有所有权限(INTERNETUSE_SIP

用户已授予USE_SIP权限


检查SIP是否是危险权限 - Rahul
@RahulKumar 是的。现在怎么办?他们说用户应该授予权限,但我的应用程序没有建议。 - Ilya Blokh
你需要要求用户授权。 - Rahul
@RahulKumar,这并没有帮助。用户授予了USE_SIP权限,但newInstance仍然返回null。 - Ilya Blokh
1个回答

3
问题在于Android SDK并不支持所有设备。
您可以先检查当前设备是否支持:
 if(SipManager.isVoipSupported(getApplicationContext())){
     Log.d("VOIP:", "Supported!");
 }
 else{
     Log.d("VOIP:", "Not Supported");
 }
 if(SipManager.isApiSupported(getApplicationContext())){
     Log.d("API:", "Supported!");
 }
 else{
     Log.d("API:","NotSupported!");
 }

有时API受支持但不支持VOIP。我在Moto E 2nd Gen和Moto X 2014, 1st Gen上进行了测试。Moto X不支持API和VOIP,只有Moto E支持API,但不支持VOIP。
为避免这种情况,您可以使用第三方API,例如Doubango
来源: Android上的SIP:本文详细讨论了这个问题并提供了替代API的建议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接