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 setandroid: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 setandroid: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 setandroid: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 setandroid: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 setandroid: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 setandroid: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 inandroid: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 inandroid: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 inandroid: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 inandroid: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"/>