Android ZRC Vendor OS API for extended work mode

1. INTRODUCTION

Currently, the ZRC Vendor OS API defines three work modes: ZRCWorkMode_Unselected, ZRCWorkMode_Controller, and ZRCWorkMode_SchedulingDisplay. As Zoom Rooms and Workspace Reservation continue to evolve, the number of ZRC application work modes must expand. Accordingly, new work modes have been defined in ZRC Vendor OS API (Version 1.12) for the ZRC application to facilitate integration with new partner devices and new use cases for existing partner devices.

2. INTERFACES

2.1 Work Modes

The current work modes, specifically the ISystemManager.ZRCWorkMode_Unselected, ISystemManager.ZRCWorkMode_Controller, and ISystemManager.ZRCWorkMode_SchedulingDisplay, have been moved from ISystemManager toZRCWorkMode:

public interface ZRCWorkMode {
    /**
     * ZRC work mode: Unselected, when user is not logged in
     */
    int ZRCWorkMode_Unselected = 0x00;

    /**
     * ZRC work mode: Controller
     */
    int ZRCWorkMode_Controller = 0x01;

    /**
     * ZRC work mode: Scheduling Display
     */
    int ZRCWorkMode_SchedulingDisplay = 0x02;
}

Additionally, two new work modes have been added as the following interface shows:

public interface ZRCWorkMode {
    /**
     * ZRC work mode: Workspace Desk
     */
    int ZRCWorkMode_WorkspaceDesk = 0x04;
    
    /**
     * ZRC work mode: Workspace Reservation Only Room
     */
    int ZRCWorkMode_WorkspaceReservationOnlyRoom = 0x08;
}

2.2 Work Mode Capabilities

To avoid compatibility issues with devices that do not yet implement these new work modes, the ZRC Vendor OS API introduces the "ZRAPI_SYSTEM_CAP_SUPPORTED_WORK_MODES" SystemCapability and the ISystemManager.getSupportedWorkModes() method, as shown below:

public interface SystemCapability {
    /**
	 * [MUST]
	 * <p>
	 * Capability for method {@link ISystemManager#getSupportedWorkModes()} .
	 *
	 * Define the capability for supporting multiple different work modes, so the administrator may select
	 * the appropriate work mode while signing in to the ZRC application on the device.
	 */
	public static final int ZRAPI_SYSTEM_CAP_SUPPORTED_WORK_MODES = 0x100000;
}

public interface ISystemManager {
    /**
     * [MUST]
     * <p>
     * Get the work modes supported by the device, which may be a combination of several different
     * work modes (by & the appropriate modes), so the administrator may select the appropriate work mode
     * while signing in to the ZRC application on the device. For example, a device may support
     * both {@link WorkMode#ZRCWorkMode_Controller} and {@link WorkMode#ZRCWorkMode_SchedulingDisplay},
     * or both {@link WorkMode#ZRCWorkMode_SchedulingDisplay} and {@link WorkMode#ZRCWorkMode_WorkspaceReservationOnlyRoom}.
     *
     * @return the work modes {@link WorkMode}
     */
    int getSupportedWorkModes();
}

As mentioned in the annotation above, the ISystemManager.getSupportedWorkModes() method can return a combination of different modes, signaled by returning the & of the ZRCWorkMode_* bit flags. When the ZRAPI_SYSTEM_CAP_SUPPORTED_WORK_MODES SystemCapability is supported, the ZRC app will query the supported work modes, and will then display a work mode selection GUI before app sign-in, listing only the work modes returned in ISystemManager.getSupportedWorkModes().

3. Changes to existing APIs

This update also modifies the implementation of the ZRAPI_SYSTEM_CAP_GET_WORK_MODE system capability and the corresponding ISystemManager.getWorkMode()/reportWorkMode() methods.

  • When the ZRAPI_SYSTEM_CAP_SUPPORTED_WORK_MODES SystemCapability is implemented, the ZRAPI_SYSTEM_CAP_GET_WORK_MODE SystemCapability and the corresponding ISystemManager.getWorkMode() method MUST also be implemented.
  • The ISystemManager.getSupportedWorkModes() method allows the vendor to indicate the supported work modes of partner ZRC devices.
  • The ISystemManager.reportWorkMode() is deprecated, we will remove it in the future.
  • The return value of ISystemManager.getWorkMode() indicates the default work mode.
Last Updated: