AddonSessionHandler

@PublicApi
interface AddonSessionHandler


插件应用为会话提供的回调。

摘要

嵌套类型

说明 onSessionEnded 回调触发的原因。

描述向插件会话中的参与者分配或撤消的权限。

公共函数

Unit
onCollaborationStartingStateUpdate(
    collaborationStartingState: CollaborationStartingState!
)

接收插件会话的最新协作开始状态。

Unit

接收最新权限状态,这种权限定义允许用户参与插件会话的方式。

Unit

在插件会话结束时响应。

公共函数

onCollaborationStartingStateUpdate

fun onCollaborationStartingStateUpdate(
    collaborationStartingState: CollaborationStartingState!
): Unit

接收插件会话的最新协作开始状态。

插件必须有具体的实现,才能支持开始协作。

onParticipantPrivilegeChanged

fun onParticipantPrivilegeChanged(
    privileges: (Mutable)List<AddonSessionHandler.Privilege!>!,
    disabledPrivileges: (Mutable)List<AddonSessionHandler.Privilege!>!
): Unit

接收最新权限状态,这种权限定义允许用户参与插件会话的方式。

插件必须有具体的实现,才能支持主机控件。

onSessionEnded

fun onSessionEnded(endReason: AddonSessionHandler.EndReason!): Unit

在插件会话结束时响应。

  1. 除非使用同一处理程序实例构造了新的 AddonSession,否则该处理程序将不会收到其他调用。
  2. SDK 将进行清理。无需额外调用 endSession

实现示例:

if (EndReason.SESSION_ENDED_UNEXPECTEDLY.equals(endReason)) {
  log("Something happened unexpectedly");
  // Display UI to user in case they want to reconnect.
  return;
}

if (EndReason.MEETING_ENDED_BY_USER.equals(endReason)) {
  // The meeting is disconnected because the user left the meeting. Perform some
  // cleanup, then exit.
  this.onMeetingDisconnected();
  return;
}

if (EndReason.SESSION_ENDED_BY_USER.equals(endReason)) {
  // Disconnected because the user left the session from the Meet application. However, the
  // conference is still active in Meet. Perform some cleanup, then listen for a possible
  // rejoin event.
  this.onSessionDisconnected();
  return;
}
参数
endReason: AddonSessionHandler.EndReason!

会话结束的原因