Android
错误提示“The package you purchased does not support this ability”?
在通话邀请超时时间内,被邀请者如果离线再上线,能否弹出通话界面?
单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请。在不同的版本上来电的显示策略有所不同(详见下方:被叫端来电显示策略)。
应用在后台时,不能自动将通话界面拉取到前台
1. TUICallKit 2.3 及以上版本调整了被叫端的来电显示策略,见下方:被叫端来电显示策略。
2. TUICallKit 2.3 版本之前,将应用从后台自动拉取到前台,需要检查 App 是否开启了“后台自启动”或“悬浮窗”权限。
不同厂商、甚至同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称也会存在不一致。例如,小米6只需要开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限。如何开启权限,详见下方:相关权限开启。
3. 如果遇到以下场景拉不起通话界面,原因是:应用的启动堆栈变化,导致 CallKitActivity 界面被遮挡移除了。
场景一:接通后退到后台,点击桌面图标进入应用,原通话界面消失;
场景二:应用在后台时,开启 banner 的情况下,收到通知 View,不点击 View,点击桌面图标进入应用,拉不起通话界面且通知消失;
场景三:应用在后台时,收到离线推送,不点击推送通知,点击桌面图标进入应用,无法拉起通话界面或通话界面闪了一下;
以上几种情况,需要在您自己业务的默认启动的主 Activity 中添加以下代码,每个应用默认启动的 Activity 都不一样,详见 AndroidManifest.xml 配置,以目前大部分应用的启动页 SplashActivity 为例:
if (!isTaskRoot() && getIntent() != null && getIntent().hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(getIntent().getAction())) { finish(); return; }
被叫端来电显示策略
全屏显示通话等待界面 | 横幅显示来电请求 |
| |
1. 如果您想要被叫端收到邀请时,尽量去拉起全屏通话界面,那么您可以集成 tuicallkit-kt 代码。默认情况下,被叫端的来电显示策略如下:
2. 如果您想在被叫端收到通话的时候,先展示一个横幅,然后根据需要拉起全屏通话界面,那么您可以调用以下接口开启该功能。
TUICallKit.createInstance(context).enableIncomingBanner(true);
开启后,被叫端的来电策略如下所示,只要开启悬浮窗权限,就能尽可能的展示来电横幅。
相关权限开启
为实现良好的通话体验,建议您在应用中开启“通知”权限、“显示在其他应用上层(悬浮窗)”以及“后台拉起界面”权限,具体方法如下:
安装应用后,您可以长按应用图标,选择“应用信息”,然后开启“通知”权限、“显示在其他应用上层”以及“后台拉起界面”权限。或者您可以到
手机->系统设置->应用管理->应用
中手动开启上述权限。Pixel 4a | VIVO |
| |