我正在研究一个允许用户通过Twilio进行通信的应用程序。这是使用FCM通知工作的,何时可以接听电话,可以正常发言。
由于我必须构建一个UI拨号来管理呼叫的控件,因此我正在考虑使用Connectionservice Doc说它支持VoIP;我将被解雇构建UI。
现在我被困了;我不知道如何合并这两个工具。
当我启动呼叫(Twilio)时,我还会致电Telecommanager,该电信试图打开Android UI电话,请参阅代码Bellow:
Uri uri = Uri.fromParts("tel", params.getString("To"), null);
Bundle callInfoBundle = new Bundle();
callInfoBundle.putString("to", params.getString("To"));
Bundle callInfo = new Bundle();
callInfo.putParcelable(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS,callInfoBundle);
callInfo.putParcelable(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, handle);
tm.placeCall(uri, callInfo);
tm.showInCallScreen(true);
Log.d(TAG,"Outgoing call successful");
在这一点上,我可以在短时间内看到Android UI电话,并使用 params ,并在其顶部说"分离" 。
。我还读到我应该使用sip,只有这样,Android就可以了,但我一无所知。
我是新手,我不确定我是否处于正确的道路上,也许我应该像这样的建议继续构建自己的UI拨号;但是首先,我想知道是否值得保持这段使用 Connectionservice 。
- https://android.stackexchange.com/questions/157363/is-there-there-there-an-android-equivalent-to-ioss-callkit
twilio开发人员在这里。
Android语音SDK团队一直在考虑使用ConnectionService
,但是我们现在没有一个例子。在GitHub上正在进行一个正在进行的讨论,您可能会从中获得一些见解,但这就是我现在为您提供的。
我们正在做Cordova Callkit Twilio。目前正在与Android位斗争。
这是一个使用iOS callkit和android(连接服务)的插件https://github.com/mattkhaw/cordova-plugin-callkit
基于另一个具有更多文档的https://github.com/websitebeaver/cordovacall
主代码在Onanswer嵌套方法中。我们的第一个大问题是在Connectionservice中,MainAttivity同时对VoIP推动做出响应,因此当用户按下Onanswer并切换到Twiliovideocartivity时,调用可能无法连接。我不得不延迟。
还应该只有一个twiliovideocartivity的实例。Launchmode:SingleInstance。
一个gotcha是较旧的Android上的VoIP屏幕,是全屏,其自己的活动称为Incallactivity,但在Android 10上回答呼叫时,它只是一个小的下拉菜单,出现了两个下降/答案按钮。
。一个有用的ADB命令,将向您显示任务和活动堆栈,并向您展示不可分录的活动以及您的活动的隐藏位置为:
/Users/gbxc/Library/Android/sdk/platform-tools/adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'