AddonClient

@PublicApi
public interface AddonClient



啟動及停止外掛程式工作階段的主要介面。

注意:一次只能啟用一個工作階段,否則 begin 傳回的 ListenableFuture 會使用 來解析。工作階段可能會自行結束 (例如使用者離開會議) 並呼叫 onSessionEnded,或呼叫 endSession 可能會終止工作階段。

使用範例:

class AwesomeAddonSessionHandler implements AddonSessionHandler {}

class AwesomeCoWatchingHandler implements CoWatchingHandler {}

public void registerStatusListener() {
  AddonClient meetClient = AddonClientFactory.getClient();
  meetClient.registerMeetingStatusListener(
      appContext,
      meetingStatus -> {
        switch (meetingStatus.status()) {
          case NO_MEETING:
            // User is not in a meeting currently.
            break;
          case MEETING:
            // User is in a meeting, check if they want to start an add-on session.
            showStartAddonSessionDialog();
            break;
          case ADDON_SESSION:
            // User is in a meeting that already hosts an add-on session, check if they want
            // to join the ongoing session.
            showJoinAddonSessionDialog();
            break;
        }
      },
      Optional.empty());
}

public ListenableFuture<AddonClient> initialSetup() {
  AddonClient meetClient = AddonClientFactory.getClient();
  return meetClient
      .newSessionBuilder(appContext, new AwesomeAddonSessionHandler())
      .withCoWatching(new AwesomeCoWatchingHandler())
      .begin();
}

摘要

巢狀類型

代表在外掛程式工作階段之前、期間或之後發生失敗事件。

公用方法

abstract AddonSession.Builder

傳回新外掛程式工作階段的建構工具。

abstract void
notifyAddonFailureEvent(
    Context appContext,
    AddonClient.AddonFailureEventType failureEventType
)

向 Meet 通知外掛程式失敗活動。

abstract void
registerMeetingStatusListener(
    Context appContext,
    MeetingStatusListener listener,
    Optional<Handler> handler
)

註冊監聽器以接收會議和外掛程式工作階段的狀態變化通知。

abstract void

取消註冊使用中事件監聽器進行 MeetingStatus 變更。

公用方法

newSessionBuilder

abstract AddonSession.Builder newSessionBuilder(AddonSessionHandler handler)

傳回新外掛程式工作階段的建構工具。這個工作階段只會在呼叫 begin 後開始。

如要開始工作階段,請先將 withCoWatching 和/或 withCoDoing 鏈結至此建構工具。

使用範例:

ListenableFuture<AddonSession> session = meetClient
    .newSessionBuilder(appContext, new AwesomeAddonSessionHandler())
    .withCoWatching(new AwesomeCoWatchingHandler())
    .withCoDoing(new AwesomeCoDoingHandler())
    .begin();
如要利用參與者中繼資料功能,請在建構工具鍊上呼叫 SessionsMetadata 以指定初始狀態,並註冊其他參與者的事件監聽器。例如:
ListenableFuture<AddonSession> session = meetClient
    .newSessionBuilder(new AwesomeAddonSessionHandler())
    .withCoWatching(new AwesomeCoWatchingHandler())
    .withParticipantMetadata(new AwesomeMetadataHandler(), myMetadataBytes)
    .begin(appContext);
如要進一步瞭解如何啟動工作階段,請參閱 begin
參數
AddonSessionHandler handler

套用至所有外掛程式工作階段的回呼

傳回
AddonSession.Builder

AddonSession 執行個體的建構工具

擲回
java.lang.NullPointerException

如果提供的任何引數為空值

notifyAddonFailureEvent

abstract void notifyAddonFailureEvent(
    Context appContext,
    AddonClient.AddonFailureEventType failureEventType
)

向 Meet 通知外掛程式失敗活動。

參數
Context appContext

此應用程式採用 Meet 外掛程式 SDK 的 getApplicationContext

AddonClient.AddonFailureEventType failureEventType

在即時分享工作階段開始前、期間或結束後遇到的失敗事件類型

擲回
java.lang.NullPointerException

如果提供的任何引數為空值

registerMeetingStatusListener

abstract void registerMeetingStatusListener(
    Context appContext,
    MeetingStatusListener listener,
    Optional<Handler> handler
)

註冊監聽器以接收會議和外掛程式工作階段的狀態變化通知。

已註冊的事件監聽器會收到下列其中一項狀態通知:

  • MEETING - Meet 應用程式中有正在進行中的會議
  • ADDON_SESSION - 目前有安裝的外掛程式工作階段。只有在會議中同時進行了進行中的會議時,才能進行這項操作。
  • NO_MEETING - 沒有會議或外掛程式工作階段
參數
Context appContext

此應用程式採用 Meet 外掛程式 SDK 的 getApplicationContext

MeetingStatusListener listener

接收MeetingStatusListener即可收到狀態變更的通知

Optional<Handler> handler

HandlerOptional 用於非同步執行作業。如未提供,可能會在 UI 執行緒上執行產生的邏輯。

擲回
java.lang.IllegalStateException

如果在為已註冊的事件監聽器呼叫 unregisterMeetingStatusListener 之前就呼叫這個方法

unregisterMeetingStatusListener

abstract void unregisterMeetingStatusListener(Context appContext)

取消註冊使用中事件監聽器進行 MeetingStatus 變更。

參數
Context appContext

此應用程式採用 Meet 外掛程式 SDK 的 getApplicationContext

擲回
java.lang.IllegalStateException

如果在呼叫 registerMeetingStatusListener 前呼叫此方法。