Since the beginning of this year we’ve been receiving more and more requests from clients for a so called “kiosk mode”.

Kiosk mode is essentially a way to show a VR experience in the most foolproof way possible, by only allowing a VR headset to run one specific app, which automatically starts when you boot the headset. This prevents users from accidentally exiting the app and getting lost in the Oculus Home environment. Very useful stuff!

However, not every headset supports a kiosk mode out of the box, and the ones that do often require fairly complex setup steps. That is why we decided to write this guide, which covers the following headsets:

Oculus Go Kiosk Mode

Oculus Go Kiosk Mode Tutorial

The most often requested kiosk mode seems to be for Oculus Go, but unfortunately Oculus Go does not have a kiosk mode, even though it was rumoured that Oculus Go for Business came with this feature. However, Oculus CTO John Carmack has tweeted that Oculus is planning to add this option in the future:

There is currently one workaround that modifies the Go’s startup process and lets you automatically launch an app on startup. This solution is aptly named OculusGo KioskMode and costs $190.

Be sure to test their demo version first though, because on the Oculus Forum some people say Oculus blocked this workaround in a recent firmware update, although this seems to later have been fixed again by the creators of the workaround.

There are also developers who tried to hack their way around the limitations of the Oculus Go to try to force their app to launch in kiosk mode. However, this requires you to build a custom application and you’ll need some serious programming experience.

If you are looking at a kiosk mode for a 360º video app, then a cheaper and less drastic option is to build a free Headjack application with our Kiosk Mode template.

Gear VR Kiosk Mode

The Samsung Gear VR is still very popular among our users, but unfortunately does not come with a kiosk mode either.

There are however two native Android features we can use to set up some form of a kiosk mode: screen pinning and lock task mode.

Screen Pinning

The simplest solution is screen pinning, which prevents users from exiting a running app. To enable screen pinning, follow these steps:

  1. Go to Settings > Security & Location
  2. Scroll down, click Screen pinning, and toggle the switch to ON. Optionally you can require a pincode to exit a pinned screen
  3. Now open a Gear VR app, then click the Recents button to open an overview of apps that are currently running
  4. Scroll down and click the pin icon . Users will now be unable to exit the app

To exit the pinned screen, simply hold the back button for a few seconds. If you configured a pincode, you will first have to fill this in before you can exit the application.

This method can also be used for Daydream apps. Unfortunately, this method does not prevent users from exiting the app through the Oculus menu.

Lock Task Mode

If you wish to have a true kiosk experience, Android’s Lock Task mode is the way to go. Google describes Lock Task mode as follows:

Android can run tasks in an immersive, kiosk-like fashion called lock task mode. You might use lock task mode if you’re developing a kiosk application or a launcher to present a collection of apps. When the system runs in lock task mode, device users typically can’t see notifications, access non-whitelisted apps, or return to the home screen

https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode

Sounds like exactly what we need! So where is the switch to enable it?! Unfortunately it is not so simple…

If you want to use Lock Task mode, you will have to build it into the source code of your app, so this will only be of use if you are building a custom app, for example with Headjack.

Most VR apps are built with the Unity game engine, and luckily someone already created a Unity plugin, called Android Kiosk Plugin to easily integrate Lock Task mode into your app:

If you wish to automatically launch a Gear VR application when you boot up your phone, you will have to create a custom Android Launcher, which is a bit beyond the scope of this article, and which has not been tested by us.

Vive Focus Kiosk Mode

The Vive Focus is one of the few headsets currently out there that supports kiosk mode out of the box, but setting it up is quite tricky. Here are the steps:

  1. To use kiosk mode, you are required to register your Vive Focus with the Vive Enterprise Advantage program.
    • In your web browser, go to: http://enterprise.vive.com/portal
    • Login or register a new account
      NOTE: Vive Focus only supports email-based HTC account, not single-sign-on using Google/Facebook/Steam
    • Click on the Vive Focus tab, then click Register New Devices
    • Fill in the serial number of your headset and press Next, then fill in your Enterprise Advantage activation code and press Next again to finish registering your device
  2. Now the tricky part begins: installing kiosk mode on your device. Luckily this only has to be done once per headset. NOTE: you need a micro-SD card to perform this step.
    • Go to the Kiosk Mode page: https://enterprise.vive.com/portal/advantage/focus/kioskmode
    • Click the Download configuration button to download a cota_config.xml file containing all the device serial numbers you registered earlier
    • Click the Download Template Package button and extract the file anywhere on your computer
    • Copy the cota_config.xml file to the xml folder of the Template Package you extracted in the previous step
    • Download this modified mns.xml file (right click, save as) and use it to overwrite the original mns.xml file inside the xml folder
    • Now zip the apk and xml folders and make sure the zip file’s name has the following structure: FocusImage_[year][month][day].zip e.g. FocusImage_20191512.zip
    • Insert a micro-SD card into the Vive Focus, turn it on, connect the Focus to your computer with a USB cable, put the Focus on your head, and select the Transfer Files USB mode
    • Now copy the FocusImage zip file we just created into the root folder of the SD card. NOTE: Make sure you don’t copy it to a subdirectory on the SD card, or to the Internal Shared Storage of the Vive Focus itself
    • Restart your Vive Focus and wait a few minutes for the installation to finish. Congrats! Kiosk mode is now enabled. Not the most hassle free process in the world, but the worst is now behind you.
  3. It is now time to select one or more apps to run in kiosk mode.
    • Put your Vive Focus headset on
    • Navigate to Settings > More Settings > Personal > Kiosk Mode
    • Select the app(s) you want to run in kiosk mode
      NOTE: If you select only 1 app, this app will automatically start when you boot the headset. If you select more than 1 app, a menu will be shown first where you can select which app to launch in kiosk mode.
    • (Optionally) set a pincode to prevent people from exiting kiosk mode
  4. Enter kiosk mode at any time by holding the power button and selecting Enter Kiosk Mode
  5. Exiting kiosk mode is done in much the same way, by holding the power button, selecting Leave Kiosk Mode and entering the 4-digit passcode, in case you decided to set one

For more first-hand information on the Vive Focus kiosk mode, see Vive’s support section and their more technical kiosk mode user guide.

Pico Kiosk Mode

The impressive range of Pico headsets is gaining popularity fast, and for a good reason. Not only does the latest Pico G2 4K offer superior image quality, but the Pico headsets also offer not one, but two types of kiosk mode:

  1. Full kiosk mode: launch an app in kiosk mode
  2. Video kiosk mode: launch a video in kiosk mode

1. Full kiosk mode

This mode allows you to automatically start an app when you boot the Pico headset.

The public Pico GitHub page contains several guides, among which one about the full kiosk mode titled Customize Launcher on Pico Device. According to this document, you will need to build and APK that meets the following criteria:

Package name should be com.picovrtob.vrlauncher

Version code should be 3000

Android Manifest should contain:
<category android:name=”android.intent.category.HOME” />
<category android:name=”android.intent.category.DEFAULT” />

Once you have your APK, contact Pico to request a username and password to login to Pico’s app signing website. Once you receive this information, you can upload your APK there and receive a signed version after about 10 minutes.

All that remains now is to sideload this app to your Pico headset using VRsideloader. Once it’s installed, simply restart the headset to launch your kiosk mode app!

To return the Pico back to its original state, simply uninstall the app using the VRsideloader’s uninstall function.

2. Video kiosk

As far as we could tell, there is no public information available about Pico’s video kiosk mode, so you will have to contact Pico for more information.

Conclusion

In this article we covered kiosk mode options for several of the popular headsets of today. Our hope is that more headsets will start supporting kiosk mode natively, since it has many useful business applications.

If you are looking for a cross-platform kiosk mode solution, then the Headjack Kiosk Template might be an interesting option for you. It allows you to add one or more videos to an app, which will then automatically be downloaded to the device on first startup.

After the content has been downloaded, the first video wil auto play when a user puts on the headset, and then restarts each time the headset is taken off for more than 5 seconds. This gives you a basic kiosk that does not require any controllers or gaze to control it.

Click here to learn more about Headjack…