I am working with a Cornish College of the Arts design student on building an application for her final project, in Unity. This application is going to run on a tablet, and will be placed in an installation. This means we have to solve locking down the tablet on both the physical and software side. On the software side, the standard name for this seems to be “kiosk mode”.
Locking down the software includes a few things. Hiding the Android software keys: the back button, home button, and menu button. Ensuring that when the tablet starts up, it automatically runs our application. If the application closes for any reason, it should boot back into the application. Basically lock the tablet down where all any standard user can access is our application.
The first thing we looked at was, how do other people do this. Most kiosks we could find were running on iOS devices, not Android, and were never locked down in any meaningful way. You could usually press the home key on these iOS devices to access the home screen. Some kiosks had locked all of this down, but most that we found, such as devices at food trucks used with a Square payment system, were rarely locked down. We didn’t really find many Android tablets setup as kiosks, which seemed to mirror the difficulty we were having in only finding iOS hardware to lock down a device. Our tech is running on Android tablets.
After that, I looked in the Unity asset store for anything. Nothing meaningful showed up on any searches. I broadened the search outside of the asset store, and looked for ideas on how to run an application in kiosk mode. At this point I had a small level of success. I found some custom theme and manifest settings I could include in my application.
I couldn’t quite get these custom settings to work, and they would have only removed the hardware keys and set up the app as a bootloader. Some more searching lead me to potentially writing a Java based plugin to override the Unity application and handle commands as necessary. I started down this path, and realized it would be very time consuming. This project has a pretty tight deadline, so I took my search in another direction.
Eventually I found that there are actually apps that can handle getting a device into kiosk mode in the Google Play app store. The one that most met our needs was pretty pricey, though, at $50: SureLock. It did everything we needed, it hides the software keys, it locks the device down to only running a single application, it automatically boots into that application.
This was where it came to the tough decision on low budget projects. Is the time saved buying an existing solution worth the cost, or would we be better off building our own solution. We decided to purchase the kiosk application. I was able to get the evaluation version running in about an hour, whereas it would have taken me many hours to write my own. This allows those extra hours to be spent on polish and features for the application.