我实现简单的SIP客户端应用程序来接收呼叫。我浏览official manual并从中获取代码。
我注意到了
SipManager.newInstance(getApplicationContext());
返回null。 Documentation says当设备不支持SIP API时会发生这种情况。但是我使用LG G6和Android 7.0,我成功测试了Google Play的第三方SIP客户端。所以我怀疑真的不支持API。我该怎么检查?
我的清单拥有所有权限(INTERNET
和USE_SIP
)
用户
授予USE_SIP
的权限
答案 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。