This site has been permanently archived. The content on this site was last updated in 2019.
Getting started with 6DoF controllers in the Android NDK
Stay organized with collections
Save and categorize content based on your preferences.
This guide shows you how to set up Google VR development with the Android NDK
and build the HelloVRBeta sample app. This app is designed to help you learn
about working with the see-through mode technology as well as the experimental
6DoF controllers and faceplate.
- Download and install the latest version of
gvr-android-sdk\*.zip
from the
releases page.
Follow these steps to build and run the HelloVRBeta sample app.
The requirements and steps to build the sample app using the NDK are nearly the same
as building the HelloVR sample app for the SDK, with the following key changes:
- Download the latest version of the
Android NDK.
Extract the NDK .so
files by running:
./gradlew :extractNdk
In settings.gradle
, uncomment the following line:
include ':samples:ndk-hellovrbeta'
To build and run the sample app in Android Studio, select samples-ndk-hellovrbeta as your target.
If you're familiar with developing for Daydream, here are the changes you need
to make in order to support the 6DoF controllers and faceplate:
To identify your app as supporting the 6DoF controllers and faceplate, add the
following meta-data tag to
your AndroidManifest.xml
file within the <activity>
element:
<activity …
<meta-data android:name="com.google.vr.controllers.supportedConfigs"
android:value="3Dof|2x6Dof"/>
</activty>
Make sure your gvr_controller_create_and_init()
call specifies
GVR_CONTROLLER_ENABLE_POSITION
; otherwise, the position data will be discarded.
Using the controllers after setup
Fluorescent lighting and HTC Vive Lighthouses are both known to interfere with
tracking. Turn off the Vive Lighthouse if you have one, or move to a room
with different conditions.
All rights reserved. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-03-27 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
{"lastModified": "Last updated 2019-03-27 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2019-03-27 UTC."]]