Android 音视频通话通知说明

发布时间: 2020-04-26 16:02

回答:

   因 Android 系统多版本,多硬件厂商,面临碎片化等问题,集成融云 CallKit, 接收音视频来电时

   融云处理方式说明如下:

   1.应用程序在前台,远端拨打音视频通话,会启动来电界面,铃声设置可参考如下方法

package io.rong.callkit;

BaseCallActivity.onIncomingCallRinging()


   2.应用程序在后台且为 Android10 以下手机,启动来电界面。

   3.应用程序在后台且为 Android10 及以上手机,因 Android10 禁止应用在后台启动 Activity, 弹通知栏通知。 融云CallKit 针对 Android10 这一特性的适配请参考VoIPBroadcastReceiver类(package io.rong.callkit)。 

   4.应用程序长时间在后台可能被系统回收,这时开发者需要集成 远程推送。 

     集成远程推送后,关于来电 push 通知处理的说明:

     4.1 第三方推送(小米、华为、魅族、OPPO、vivo 等)通常支持通知栏推送和透传推送,通知栏是硬件厂商系统直接弹出通知,透传推送要求应用在后台处于启动状态,无法保证推送的及时性,因此融云接入这些第三方推送时默认使用通知栏推送方式,来电时会弹通知栏 ,无法直接启动来电界面 

     4.2 应用没有设置上述第三方推送或终端用户使用的手机不是以上第三方推送支持的机型,默认使用融云推送服务,使用融云推送,Android10 以下会启动来电界面,Android10 及以上手机弹通知栏通知。 

     4.3 海外用户融云支持 FCM 推送 (谷歌官方推送),Android10 以下会启动来电界面,Android10 及以上手机弹通知栏通知。 

   5.应用程序在前台,来电后无法显示来电界面,使用 CallKit源码时 请参考知识库.

   6.应用程序在前台,使用 maven 集成 CallKit 时,参考如下处理方式。

public class MainActivity extends Activity{

 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
    /**
     * 防止 voip 通话页面被会话列表、会话页面或者开发者 app 层页面覆盖。 
     * 使用 maven 接入 callkit 的开发者在 app 层主页面的 onCreate 调用此方法即可。
     * 针对导入 callkit 源码的开发者,不使用会话列表和会话页面
     * 我们建议在 {@link RongCallModule#onCreate(Context)}方法中设置
     * mViewLoaded 为 true 即可。
     */
     RongCallKit.onViewCreated();
 }
}