有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

TUICallKit 是否可以不引入 IM SDK,只使用 TRTC?

不可以,TUIKit 全系组件都使用了腾讯云 IM SDK 作为通信的基础服务,例如通话拨打信令、通话忙线信令等核心逻辑,如果您已经购买有其他 IM 产品,也可以参照 TUICallKit 逻辑进行适配。

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

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

如何购买音视频通话套餐?

请参考购买链接 音视频通话 SDK 价格总览,如有其他问题,请点击页面右侧,进行售前套餐咨询;也可以加入我们的 TUICallKit 技术交流平台 zhiliao,进行咨询和反馈。

TUICallKit 崩溃,崩溃日志:"No implementation found for xxxx"?

堆栈信息如下:
java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.base.Log.nativeWriteLogToNative(int, java.lang.String, java.lang.String) (tried Java_com_tencent_liteav_base_Log_nativeWriteLogToNative and Java_com_tencent_liteav_base_Log_nativeWriteLogToNative__ILjava_lang_String_2Ljava_lang_String_2)
at com.tencent.liteav.base.Log.nativeWriteLogToNative(Native Method)
at com.tencent.liteav.base.Log.i(SourceFile:177)
at com.tencent.liteav.basic.log.TXCLog.i(SourceFile:36)
at com.tencent.liteav.trtccalling.model.impl.base.TRTCLogger.i(TRTCLogger.java:15)
at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.init(ServiceInitializer.java:36)
at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.onCreate(ServiceInitializer.java:101)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2097)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2070)
at android.app.ActivityThread.installProvider(ActivityThread.java:8168)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7709)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7573)
at android.app.ActivityThread.access$2600(ActivityThread.java:260)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2435)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
注意:
上述异常,是因为 TUICallKit 依赖的 TRTC 等 SDK 部分接口使用了 JNI 实现,Android Studio 在某些条件进行编译 APK 的时候可能并不会把 Native 的 .so 库打包进去,导致出现这类报错,重新 Clean 一下工程,卸载重装即可。

allowBackup 异常?

报错信息Manifest merger failed : Attribute application@allowBackup value=(true) from AndroidManifest.xml
问题原因:TUICallKit 依赖的 IM SDK 中默认 allowBackup 的值为 false ,表示关闭应用的备份和恢复功能。
解决方法:您可以在您工程的 AndroidManifest.xml 文件中删除 allowBackup 属性或将该属性改为 false,表示关闭备份和恢复功能;也可以在 AndroidManifest.xml 文件的 application 节点中添加 tools:replace="android:allowBackup"; 表示覆盖 IM SDK 的设置,使用您自己的设置。

TUICallKit 是否支持离线推送呢?

支持,Android 离线推送采用腾讯云的TIMPush推送插件以及自集成推送,接入方式详见:离线唤醒

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

单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请。在不同的版本上来电的显示策略有所不同(详见下方:被叫端来电显示策略)。

应用在后台时,不能自动将通话界面拉取到前台

1. TUICallKit 2.3 及以上版本(Android&iOS发布日志)调整了被叫端的来电显示策略,见下方:被叫端来电显示策略
2. TUICallKit 2.3 版本之前,将应用从后台自动拉取到前台,需要检查 App 是否开启了“后台自启动”或“悬浮窗”权限。
不同厂商、甚至同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称也会存在不一致。例如,小米6只需要开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限。
如何开启权限,详见下方:相关权限开启
说明:
如果您在测试中手动开启了所有权限,依然无法自动拉起通话界面到前台,可能需要做厂商兼容,可以加入我们的 TUICallKit 技术交流平台 zhiliao,联系我们协助处理。

被叫端来电显示策略

为使TUICallKit 含UI方案能够更好的与会话聊天、视频直播等其他组件相融合,增加产品特色,提升用户的使用体验,TUICallKit 2.3 及以上版本Android&iOS发布日志),调整了被叫端的来电显示策略,详情如下所示:
2.3版本及以上版本
2.3版本之前



说明:
相关权限如何开启,详见下方:相关权限开启



如果离线再上线后没有按照上述策略显示来电界面,请过滤onReceiveNewInvitation日志,检查是否拉取到历史消息,如果没有该日志的打印,请加入我们的 TUICallKit 技术交流平台 zhiliao,联系我们协助处理。

相关权限开启

为实现良好的通话体验,建议您在应用中开启“通知”权限、“显示在其他应用上层(悬浮窗)”以及“后台拉起界面”权限,具体方法如下:
代码指引
手动开启
通知权限:便于展示推送通知:请参见 通知运行时权限请求运行时权限 根据业务需求自行实现。
悬浮窗权限:用于展示自定义的来电通知,以及通话悬浮窗。
后台拉起界面权限:用于当应用在后台时拉起界面(例如:VIVO手机)。
fun requestPermission(context: Context?) {
//In TUICallKit,Please open both OverlayWindows and Background pop-ups permission.
PermissionRequester.newInstance(
PermissionRequester.FLOAT_PERMISSION, PermissionRequester.BG_START_PERMISSION)
.request()
}
安装应用后,您可以长按应用图标,选择“应用信息”,然后开启“通知”权限、“显示在其他应用上层”以及“后台拉起界面”权限。或者您可以到手机 > 系统设置 > 应用管理 > 应用中手动开启上述权限。
Pixel 4a
小米
vivo