Configure App Capabilities

To ensure the Wave contents well compatible with the Wave devices for the users, the Wave app must define its capabilities in AndroidManifest.xml.

uses-sdk
android:minSDKVersion
Set android:minSDKVersion to “25” which is the minimum Android version Wave VR supports.
<uses-sdk android:minSdkVersion="25"/>
uses-feature
android:name and android:required
Set android:name to “wave.feature.handtracking”,and set android:required to “true”,enables WAVE VR hand feature.
<uses-feature
    android:name="wave.feature.handtracking"
    android:required="true" />
uses-feature
android:name and android:required
Set android:name to “wave.feature.tracker”,and set android:required to “true”,enables WAVE VR tracker feature.
<uses-feature
    android:name="wave.feature.tracker"
    android:required="true" />
uses-feature
android:name and android:required
Set android:name to “wave.feature.eyetracking”,and set android:required to “true”,enables WAVE VR eye tracking/expression features.
<uses-feature
    android:name="wave.feature.eyetracking"
    android:required="true" />
uses-feature
android:name and android:required
Set android:name to “wave.feature.lipexpression”,and set android:required to “true”,enables WAVE VR lip feature.
<uses-feature
    android:name="wave.feature.lipexpression"
    android:required="true" />
uses-feature
android:name and android:required
Set android:name to “wave.feature.sceneperception”,and set android:required to “true”,enables WAVE VR scene perception feature.
<uses-feature
    android:name="wave.feature.sceneperception"
    android:required="true" />
uses-feature
android:name and android:required
Set android:name to “wave.feature.marker”,and set android:required to “true”,enables WAVE VR marker feature.
<uses-feature
    android:name="wave.feature.marker"
    android:required="true" />
activity
android:screenOrientation
Set android:screenOrientation to “landscape” to ensure the screen being split into two eyes correctly.
android:theme
Disable the TitleBar and set Fullscreen in android:theme. The application must be run with full screen. No window elements should be visible.
android:configChanges
To incorporate with the runtime better, the application is not expected to restart due to any configuration change. To declare the application handles all configuration change.
<activity
    android:screenOrientation="landscape"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    android:configChanges="density|fontScale|keyboard|keyboardHidden|layoutDirection|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
</activity>
intent-filter
category
Add category android:name “com.htc.intent.category.VRAPP” to allow categorizing the Wave applications.
<intent-filter>
    <category android:name="com.htc.intent.category.VRAPP" />
</intent-filter>
meta-data
minWaveSDKVersion
Add meta-data android:name “minWaveSDKVersion” and fill in android:value with the maximum Wave SDK API level which your app uses, default value is 1.

Note

The value of “minWaveSDKVersion” you need to set depends on the design of your content app. For example, if your app invokes an API effective with Runtime version 2 and this API is “MUST HAVE” for your content, you must set “minWaveSDKVersion” 2 for your app. On the contrary, if this API is “Optional” and you do the proper handling for it, you still can set “minWaveSDKVersion” 1 for your app. See detail in WVR Version Check to know how to check SDK and runtime version.

com.htc.vr.content.NumDoFHmd
Add meta-data android:name “com.htc.vr.content.NumDoFHmd” and fill in android:value with the tracking mode support of the HMD for your app. The default value is 6DoF which means the app supports 6DoF HMD tracking. See the following comment within code block to know what value you should set.
com.htc.vr.content.NumDoFController
Add meta-data android:name “com.htc.vr.content.NumDoFController” and fill in android:value with the tracking mode support of the controller for your app. The default value is 6DoF which means the app supports 6DoF controller tracking. See the following comment within code block to know what value you should set.
com.htc.vr.content.NumController
Add meta-data android:name “com.htc.vr.content.NumController” and fill in android:value with how many controllers the app can support. Its value could be 0, 1 or 2. See the following comment within code block to know what value you should set.
<meta-data android:name="minWaveSDKVersion" android:value="1" />

<!--Please consider the DoF support of HMD and controller individually for your content.-->
<!--Set value “3DoF” if your content only considers the rotation pose. -->
<!--Set value “6DoF” if your content considers both rotation and position pose. -->
<!--Set value “3,6DoF” if your content is capable of supporting both 3 and 6 DoF playing. -->
<meta-data android:name="com.htc.vr.content.NumDoFHmd" android:value="6DoF"/>
<meta-data android:name="com.htc.vr.content.NumDoFController" android:value="6DoF"/>

<!--Fill the value of how many controllers the application can support.-->
<!--The value could be 0, 1 or 2. Use comma(,) between value if your content can support multiple cases.-->
<!--Set value “0” if your content supports gaze mode only. -->
<!--Set value “1” if your content only supports playing with one controller. -->
<!--Set value “1,2” if your content supports playing with either one controller or two controllers. -->
<!--Set value “0,1,2” if your content supports all cases, which mean user can play by gaze mode, one controller or two controllers. -->
<meta-data android:name="com.htc.vr.content.NumController" android:value="2"/>