通话监听
融云 CallLib 库提供了 IRongReceivedCallListener 和 IRongCallListener 两个类, 用于处理呼叫相关的业务逻辑上报。
来电监听
需要设置 CallLib 的全局通话监听 IRongReceivedCallListener,来监听通话呼入。
-
调用
RongCallClient
中的setReceivedCallListener
来监听通话呼入。RongCallClient.setReceivedCallListener(new IRongReceivedCallListener() {
/**
* 来电回调
* @param callSession 通话实体
*/
@Override
public void onReceivedCall(RongCallSession callSession) {
}
/**
* targetSDKVersion 大于等于 23 时检查权限的回调。当 targetSDKVersion 小于 23 的时候不需要实现。
* 在这个回调里用户需要使用Android6.0新增的动态权限分配接口 通知用户授权,
* 然后根据用户授权或者不授权分别回调
* RongCallClient.getInstance().onPermissionGranted()和
* RongCallClient.getInstance().onPermissionDenied()来通知CallLib。
*
* @param callSession 通话实体
*/
@Override
public void onCheckPermission(RongCallSession callSession) {
}
}); -
如果应用需要支持 Android 6.0(API 级别 23)或更高版本的设备,请在
onCheckPermission
回调中通过被叫用户,请求授予摄像头(CAMERA
)、麦克风(RECORD_AUDIO
)权限,并将结果通知 CallLib。-
授权后,通知 CallLib。SDK 会触发来电监听的
onReceivedCall
回调。RongCallClient.getInstance().onPermissionGranted();
-
拒绝授权后,通知 CallLib。此时主叫端会触发通话状态监听的
onCallDisconnected
方法结束呼叫。原因为REMOTE_REJECT(12)
对方拒绝。RongCallClient.getInstance().onPermissionDenied()
-
通话状态监听
设置通话状态的回调 IRongCallListener,来监听通话状态的变化。
RongCallClient.getInstance().setVoIPCallListener(new IRongCallListener() {
//
});
具体支持监听的事件请参见下方介绍的回调方法。