android - SipManager.newInstance 返回 null

标签 android sip android-7.0-nougat

我实现了简单的 SIP 客户端应用程序来接听电话。我通过 official manual并从中获取代码。

我注意到了

SipManager.newInstance(getApplicationContext());

返回空值。 Documentation says当设备不支持 SIP API 时会发生这种情况。但是,我将 LG G6 与 Android 7.0 一起使用,并且成功地从 Google Play 测试了第三方 SIP 客户端。所以我怀疑 API 是否真的不受支持。我怎么检查呢?

我的 list 具有所有权限(INTERNETUSE_SIP)

USE_SIP 的权限由用户授予

最佳答案

问题是并非所有设备都支持 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 .

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

关于android - SipManager.newInstance 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49865269/

相关文章:

android - 如何检测 ValueEventListener 是否已在 Firebase 中获取数据

android - Facebook - "Cannot query users by their username"解决方案

android - 保留通过 adb shell 发送的 JSON 引号

添加 Router Header 时,javax.sip.OUTBOUND_PROXY 被忽略

android.os.FileUriExposeException : file:///storage/emulated/0/test. txt 通过 Intent.getData() 暴露在应用程序之外

android - GET_ACCOUNT 权限未在 android N 中授予

c++ - Web 开发人员对为 Android 开发感到好奇

SIP 客户端在取消时响应 481

perl - 是否有任何 Perl 模块可用于向 Office Communicator 发送消息?

android - 日期选择器对话框无法切换到 Android 7.0 设备上的微调器