Wave PluginKit SDK

The Wave PluginKit SDK helps developers with designing a VR DeviceService. It encapsulates the communication between a VIVE Wave™ Server and a VR DeviceService. It also provides mechanisms for defining data transmission.

  • The PluginKit has defined several interfaces to make it easier to develop drivers.
  • A VR DeviceService currently sends three types of data (pose, button, and analog) to VR apps.
  • When developing a VR DeviceService, define what role the device plays and what data type sends.
  • Decide how to use the tracker. For example, use the Android™ sensor manager (sensor.TYPE_GAME_ROTATION_VECTOR) as tracking data, and send the data to the app so the tracker moves with the smartphone. Or you can use a different path for the tracker, such as a circle or line.

Pluginkit SDK Developer Guide

The VR DeviceService is responsible for transmitting data from the device to the application. All VR DeviceServices are managed by a VIVE Wave™ Server.

Lifecycle of a VR DeviceService

A VR DeviceService continuously transmits data to the Wave VR Server. To optimize your VR app, save power or release unused resources when your VRDevice enters onPause().



VRDeviceService is inherited from the Android service component. It is responsible for processing events from the VIVE Wave™ Server. See VRDeviceService


VRDevice is responsible for transmitting the pose, button, axis, and proximity data to the VR app and handling events. See VRDevice Guide

Configure Device Capabilities

This section introduces what configurations are needed in Androidmanifest.xml for filtering VR apps in Viveport based on the capabilities of VRDevice. See Configure Device Capabilities


Check out helpful tutorials for the PluginKit SDK. See PluginKit SDK Tutorials

Pluginkit SDK Documentation

Provides API references for the Pluginkit SDK. See com.htc.vr.sdk.pluginkit