Android

错误提示“The package you purchased does not support this ability”?

如遇以上错误提示,是由于您当前应用的音视频通话能力包过期或未开通,您可以参见 开通服务,领取或者开通音视频通话能力,进而继续使用TUICallKit 组件。

在通话邀请超时时间内,被邀请者如果离线再上线,能否弹出通话界面?

单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的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; }




被叫端来电显示策略

为使 TUICallKit 适应不同的业务需求,增加产品特色,提升用户的使用体验,TUICallKit 2.3 及以上版本发布日志),优化收到来电后的通话页面显示弹出策略,详情如下所示:
全屏显示通话等待界面
横幅显示来电请求






1. 如果您想要被叫端收到邀请时,尽量去拉起全屏通话界面,那么您可以集成 tuicallkit-kt 代码。默认情况下,被叫端的来电显示策略如下:



2. 如果您想在被叫端收到通话的时候,先展示一个横幅,然后根据需要拉起全屏通话界面,那么您可以调用以下接口开启该功能。
TUICallKit.createInstance(context).enableIncomingBanner(true);
开启后,被叫端的来电策略如下所示,只要开启悬浮窗权限,就能尽可能的展示来电横幅。



说明
相关权限如何开启,详见下方:相关权限开启
如果没有按照上述策略显示来电界面,请过滤onCallReceived日志,检查是否收到通话邀请。

相关权限开启

为实现良好的通话体验,建议您在应用中开启“通知”权限、“显示在其他应用上层(悬浮窗)”以及“后台拉起界面”权限,具体方法如下:
手动开启
代码指引
安装应用后,您可以长按应用图标,选择“应用信息”,然后开启“通知”权限、“显示在其他应用上层”以及“后台拉起界面”权限。或者您可以到手机->系统设置->应用管理->应用中手动开启上述权限。
Pixel 4a
VIVO






通知权限:便于展示推送通知:请参考通知运行时权限请求运行时权限 根据业务需求自行实现。
悬浮窗权限:用于展示自定义的来电横幅,以及通话悬浮窗。
后台拉起界面权限:用于当应用在后台时拉起界面(例如:vivo手机)。
fun requestPermission(context: Context?) {
//In TUICallKit,Please open both OverlayWindows and Background pop-ups permission.
PermissionRequester.newInstance(