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();
如需利用参与者元数据功能,请在构建器链上调用 withPARTICIPANTMetadata,以指定初始状态并为其他参与者注册监听器。例如:
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

如果提供的参数为 null

notifyAddonFailureEvent

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

向 Meet 发出插件故障事件通知。

参数
Context appContext

使用 Meet 插件 SDK 的应用的 getApplicationContext

AddonClient.AddonFailureEventType failureEventType

实时共享会话之前、期间或之后遇到的失败事件类型

抛出
java.lang.NullPointerException

如果提供的参数为 null

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

OptionalHandler,用于异步执行。如果未提供,则生成的逻辑可能会在界面线程上运行。

抛出
java.lang.IllegalStateException

如果在为已注册的监听器调用 unregisterMeetingStatusListener 之前调用此方法,

unregisterMeetingStatusListener

abstract void unregisterMeetingStatusListener(Context appContext)

针对 MeetingStatus 更改取消注册处于活动状态的监听器。

参数
Context appContext

使用 Meet 插件 SDK 的应用的 getApplicationContext

抛出
java.lang.IllegalStateException

如果在调用 registerMeetingStatusListener 之前调用此方法。