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!

세션이 종료된 이유