SipManager.newInstance返回null

时间:2018-04-16 19:57:41

标签: android sip android-7.0-nougat

我实现简单的SIP客户端应用程序来接收呼叫。我浏览official manual并从中获取代码。

我注意到了

SipManager.newInstance(getApplicationContext());

返回null。 Documentation says当设备不支持SIP API时会发生这种情况。但是我使用LG G6和Android 7.0,我成功测试了Google Play的第三方SIP客户端。所以我怀疑真的不支持API。我该怎么检查?

我的清单拥有所有权限(INTERNETUSE_SIP

用户

授予USE_SIP的权限

1 个答案:

答案 0 :(得分:2)

问题是所有设备都不支持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支持Only API,但VOIP不支持。
为避免这种警告,您可以使用第三方API,例如Doubango

来源SIP on Android:本文详细讨论了这个问题并提出了替代API。