Demystifying Android Kiosk mode and it's restrictions

Android Kiosk restrictions header

Looking down devices into Kiosk mode is a useful and often necessary functionality when providing interactive solutions to end users.

In this article, we are explaining Kiosk mode and different levels of restrictions on user-facing devices. It is the first of several articles about this topic. The following article will dive deeper into the intricacies of Kiosk mode and how to build your very own Kiosk. More on this later.

It is possible to use various operating systems for this kind of functionality since Kiosk is rather popular in the context of Android OS and this is the area of our expertise, we are going to build a fully working Android Kiosk.

What is Kiosk mode?

Kiosk mode restricts a device's functionality for dedicated use, allowing the user to access only predefined applications, effectively "locking down" the device.

Purpose of Kiosk mode

Android Kiosk mode is useful in countless settings where control over device usage is important. It can improve usability since the users' journey is predefined and harder to skip.

Locking users down to specific apps minimizes the risk of users changing system settings or installing unauthorized software. It is a great way for businesses to optimize device use and maintain a secure, controlled environment.

Onboard Android features

Android Open Source Project (AOSP) comes with two basic Kiosk features onboard: Screen Pinning (App Pinning) and Lock Task Mode. While all those features provide a simple solution to lock down devices to a specific app, they are mostly not suitable for full Kiosks. Especially professional products used unsupervised by the public need more resistant solutions. This is where custom Android launchers become interesting!

Custom Android launcher

One essential step in building a proper Kiosk solution is to customize or replace the default Android launcher. The AOSP comes natively with AOSP Launcher 3, which does not provide any built-in Kiosk functionality.

What is an Android launcher?

An Android launcher is an application that manages the device's home screen interface, app icons, and widgets, allowing users to personalize their Android UI and experience.

Why customize the Android launcher for Kiosk mode?

The Android launcher can be compared to a computer's desktop. It is the first thing a user sees after device boot up and animation. It not only allows the user to personalize their Android experience but can be pre-configured by the OS developer to show a certain set of apps and fit a company's corporate identity. This is the scope of customization necessary to build a robust Kiosk.

Launcher customizations needed for Kiosk mode

Customizing the Android launcher to build a Kiosk solution can be split into three categories:

1. Functional customizations

Developing a custom launcher app provides the opportunity to design a clean, efficient interface that only shows necessary apps and functions, such as quick access to help resources or custom widgets. The initial design is reduced to the essentials and improves usability for Kiosk users.

2. Visual customizations

A customized launcher can be branded with a tailored interface that supports a company's visual identity. The flexibility of customization in terms of layout, app organization, and features compared to the default launcher is a great benefit.

It creates room for corporate identity and ensures that a consistent user interface and experience are delivered across different Android device models.

3. System control customizations

The custom launcher must initialize the OS on boot and restrict possible user interactions on the system level. Examples include disabling pulling down the status bar or hiding navigation buttons. By customizing the Android launcher in preparation for Kiosk mode, you can create a more user-friendly, and tailored experience that better meets the specific needs of your device's purpose.

Application restrictions in Kiosk mode

Kiosk mode in Android typically comes in two forms, which define the level of user navigation: Singel-app Kiosk mode or Multi-app Kiosk mode.

Single-app Kiosk mode

Single-app Kiosk mode locks the device to a single application, preventing users from accessing any other part of the device such as other apps or the device's settings. The device's functionality – from a user's POV – is therefore limited to one dedicated function. The level of restriction or actions that can be carried out highly depends on the specific app chosen. Restricting a device to access a browser keeps lots of options open, at least when the address bar is not hidden.

Restricting device operation to a custom business app such as an app requesting service reviews in the hospitality industry or a self-checkout POS system in a supermarket narrows down the user action further.

Here are some examples of Android-based single-app Kiosk mode use cases:

Multi-app Kiosk mode

Whereas single-app Kiosks are the extreme form of restriction, various use cases need an approach where multiple pre-defined applications are available. This adds a new level of complexity to Kiosk mode. Even though users can roam more freely they are not supposed to enter other apps or change the device’s settings. The idea of multi-app Kiosk mode is to create a controlled environment where navigation between a pre-allowed set of apps is still possible.

This approach is used for:

  • Infotainment systems in cars
  • Educational devices running learning apps
  • Employee devices with access to multiple work-related apps

UI restrictions

No matter if a single- or multi-app solution is needed, all types of Kiosk modes typically need the following restrictions and functions:

  1. Preventing users from exiting the Kiosk mode
  2. Limiting access to device settings
  3. Automatically enabling Kiosk mode on device startup
  4. Disabling or customizing the navigation
  5. Giving the option to lock screen orientation
  6. Use autostart for certain user applications

The deep dive into how to realize those changes will be discussed in a follow-up article. For now, we get into what some of them specifically mean in the context of building a Kiosk solution.

Automatically launching Kiosk mode on device startup

When a dedicated Kiosk device boots up, the custom Android launcher automatically starts and initiates configured user apps. This ensures that important content delivery apps are presented without manual input.

Autostart settings in the launcher can either launch a specific app in single-app Kiosk mode or display a set of apps in multiple-app mode. This has the potential to lock down the device immediately during boot, depending on whether the functionality of the navigation and status bar are yet restricted.

Disabling or customizing the Android navigation

Android navigation generally consists of three main elements: Status bar, navigation bar, and in newer Android versions, gesture-based navigation. All three are important UI/UX elements needed to navigate between apps or within the OS.

Status bar

The status bar is located at the top of the screen, showing essential information like app notifications, current time and battery level. Pulling down the status bar gives the user quick access to notifications and settings making it a central navigation element within the UI. Thus, it is important to keep it in mind when building a Kiosk solution.

status-bar-pull-down

Source: Android by emteria - The status bar

status-bar-1

Source: Android by emteria - Notifications

It can be configured with several visibility and restriction options:

  • The status bar can be set to always visible, providing users with access to notifications and system information;
  • it can be hidden entirely to prevent any distractions;
  • or the "swipe down" action is restricted to show essential notifications while keeping the access to settings under wraps.

By adjusting the status bar's behavior, it is possible to make sure the device serves its intended purpose without unnecessary interruptions or unintended access to system settings.

Navigation bar

The Android navigation bar, typically at the bottom of the screen, is the central UI element for device navigation and control. In Kiosk mode, the navigation bar is as important as the status bar when it comes to restricting access.

nav-bar

Source: Android by emteria - The navigation bar

There are several levels of restrictions sensible depending on the use case:

  • The navigation bar can be set to always visible, providing users with constant access to navigation buttons like Home, Back, and Recent Apps;
  • It can be always hidden, which prevents users from navigating away from the intended app;
  • or dynamic, where the bar's visibility changes based on the app's context, offering a balance between accessibility and focused use.

The last point is necessary when apps are not shipped with in-app navigation but use the main Android navigation. In this case, the nav bar should be displayed as long as users move within the app. Otherwise, they cannot go back or exit the app to get to the launcher's main screen to switch applications in a multi-app kiosk scenario. Once they entered the main screen navigation should be disabled since it is not needed since the only choice should be to pick one of the displayed apps.

Gesture-based navigation

Gesture-based navigation is gaining some popularity. Its main benefit when correctly implemented, is its touchless options. In combination with motion sensors, it can be a useful solution for digital signage systems since it improves hygiene. In other use cases, it makes sense to disable it to keep the navigation straightforward.

Example of how to handle the Android navigation

The choice of navigation bar and status bar visibility depends on the specific requirements of the Kiosk use case, the level of user interaction needed, and the balance between functionality and access control.

Here is a multi-app Kiosk mode example with an always hidden status and dynamic navigation bar:

new_desktop_kiosk-mode2

Source: Android by emteria - Custom launcher Kiosk mode

Note: In a multi-app Kiosk setup, ensure apps have in-app navigation for easy exit and app switching. Consider a dynamic approach with a hidden launcher and active app navigation.

Conclusion

Kiosk mode is a useful or even necessary solution that can be customized to fit various product needs, whether for single-app or multi-app environments. Regardless of the specific implementation, effective Kiosk solutions share common critical features. These include preventing users from exiting Kiosk mode, restricting access to device settings, ensuring automatic app launch on startup, customizing navigation options, controlling screen orientation, and managing peripheral device access.

With all the necessary features onboard Android Kiosk software is a powerful tool to build Android products that are robust enough to face real people in public spaces, helping them with their inquiries, payment processes and purchases, or whatever the devices' dedicated task might be.

Read the next article to learn how to build your own Kiosk solution or reach out if you need an Android OS for your hardware with Kiosk functionality natively built in.

Power your Kiosk solution with Android

See why emteria is the chosen Android™ customization & management platform for OEM solution builders — and what it can do for your POS and kiosk solutions.

Book live demo
pos

Table of contents

emteria Demo
See emteria in action