tencent cloud

文档反馈

最后更新时间:2024-07-24 10:20:03
    TIMPush 插件是一款功能强大的付费插件,它为 Google 平台带来了 VoIP calls 的通知机制,结合Firebase Cloud Messaging (FCM)提供的数据消息能力以及TUICallKit组件,能够实现具有自定义布局的来电显示界面。
    说明:
    拥有 Google Mobile Services 的手机。
    FCM 数据消息功能仅在TIMPush 7.9.5668及更高版本中提供。
    TUICallKit 的支持仅限于 2.3 版本及以上。
    本文详细介绍如何在 TUICallKit 组件中接入TIMPush插件,使用 FCM 的数据消息能力,实现音视频通话的横幅来电显示效果。

    集成效果

    TUICallKit 在 GitHub 示例工程上已成功集成了 FCM 数据消息推送,您可以通过参考 Call UIKit 示例工程 来快速实现功能的正常运行。以下示意图展示了 TUICallKit 含 UI 方案集成 FCM 数据消息后,当被叫端的应用在前台、后台或者应用进程不存在时,被叫端收到来电邀请后的效果。
    应用在前台时的显示效果
    应用在后台时或者离线时的显示效果
    
    
    
    
    
    
    说明:
    为实现上图良好的通话体验,建议您在应用中开启“通知”权限、“显示在其他应用上层”以及“后台拉起界面”权限,具体方法见:相关权限开启

    准备条件

    1. 将您自己的应用注册到 FCM推送平台,得到 AppIDAppKey 等参数以及 google-services.json 文件 ,来实现离线推送功能。
    2. 登录Chat 控制台,在推送管理 > 接入设置功能栏,选择 FCM,添加 FCM 的证书,其中,消息类型选择透传(数据)消息
    厂商推送平台
    Chat 控制台配置
    
    
    
    
    
    

    快速接入

    1. 下载并添加配置文件

    完成控制台厂商推送信息填写后,下载并添加配置文件到工程。将下载的timpush-configs.json文件添加到应用模块的 assets 目录下,将 google-services.json添加到工程app目录下。
    下载文件 timpush-configs.json
    下载文件 google-services.json
    添加到工程
    
    
    
    
    
    
    
    
    

    2. 集成 TIMPush 插件

    在项目的app/build.gradle 文件中添加如下依赖:
    implementation "com.tencent.timpush:timpush:latest.release"
    implementation "com.tencent.timpush:fcm:latest.release"
    说明:
    TIMPush 需要集成 IMSDK 在 7.9.5668 版本及以上。
    您可以在 tuicallkit-kt/build.gradle文件中修改 Chat SDK 的版本号。

    3. 完成工程配置

    在项目级 build.gradle 文件的 buildscript -> dependencies 下添加以下配置。
    buildscript {
    dependencies {
    classpath 'com.google.gms:google-services:4.3.15'
    }
    }
    app/build.gradle文件中添加下方配置。
    apply plugin: 'com.google.gms.google-services'
    app/proguard-rules.pro文件中,将 TIMPush 相关类加入不混淆名单。
    -keep class com.tencent.qcloud.** { *; }
    -keep class com.tencent.timpush.** { *; }
    app/build.gradle文件中,将应用包名修改为您的实际应用包名。
    applicationId 'com.****.callkit'

    4. 实现自动登录

    在应用的application类中,监听 TIMPush 发出的事件通知,实现自动登录。
    Kotlin
    Java
    import com.tencent.qcloud.tuicore.TUIConstants import com.tencent.qcloud.tuicore.TUICore import com.tencent.qcloud.tuicore.interfaces.ITUINotification class BaseApplication : Application() { override fun onCreate() { super.onCreate() TUICore.registerEvent(TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_KEY, TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_SUB_KEY) { key, subKey, param ->
    if (TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_KEY == key
    && TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_SUB_KEY == subKey) { //you need to login again to launch call activity, please implement this method by yourself autoLogin() } } } }
    import com.tencent.qcloud.tuicore.TUIConstants; import com.tencent.qcloud.tuicore.TUICore; import com.tencent.qcloud.tuicore.interfaces.ITUINotification;
    
    public class BaseApplication extends Application {
    @Override
    public void onCreate() {
    super.onCreate();
    
    TUICore.registerEvent(TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_KEY,
    TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_SUB_KEY, new ITUINotification() {
    @Override
    public void onNotifyEvent(String key, String subKey, Map<String, Object> param) {
    if (TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_KEY.equals(key)
    && TUIConstants.TIMPush.EVENT_IM_LOGIN_AFTER_APP_WAKEUP_SUB_KEY.equals(subKey)) {
    //you need to login again to launch call activity, please implement this method by yourself
    autoLogin();
    }
    }
    });
    }
    }
    完成上述步骤后,您可以结合 TUICallKit 使用 TIMPush 的离线推送能力。
    说明:
    如果您的 Android 程序在接收推送或拉起页面时遇到问题,您可以参见 被叫端来电显示策略 对问题进行排查。

    高级功能

    自定义铃声

    如果您想自定义该铃声,可以替换 tuicallkit-kt/src/main/res/raw/phone_ringing.mp3文件。
    注意:
    替换掉该铃声后,不论应用在前台、后台或者离线,铃声都会是替换后的铃声。
    替换后其他厂商手机收到邀请后的铃声也会是替换后的铃声。

    常见问题

    1. 应用杀死后无法弹出来电UI

    确认收到了推送,收不到推送需要确认下 Chat 控制台是否正确上传证书。参见文档上述快速接入的第一步,看下是否添加正确。
    确认控制台选择了FCM 数据消息,对照上述准备条件的第二步;
    确认收到数据消息,过滤日志(关键字:TIMPush),检查下述日志有打印;
    
    
    
    确认实现了自动登录。自动登录后才会去拉通话请求,才能显示来电UI。

    2. 相关权限开启

    为实现良好的通话体验,建议您在应用中开启“通知”权限、“显示在其他应用上层(悬浮窗)”以及“后台拉起界面”权限,具体方法如下:
    代码指引
    手动开启
    通知权限:便于展示推送通知:请参考通知运行时权限请求运行时权限 根据业务需求自行实现。
    悬浮窗权限:用于展示自定义的来电通知,以及通话悬浮窗。
    后台拉起界面权限:用于当应用在后台时拉起界面(例如: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
    
    
    
    
    
    

    交流与反馈

    如果有任何需要或者反馈,您可以联系:info_rtc@tencent.com
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持