We’re not entirely done covering new enterprise features in Windows Phone 8.1. Let’s dive into what I would usually call "Kiosk Mode". (At least it’s meant as an enterprise feature, but if you’re the controlling type I suppose you could turn it into a "kids mode on steroids".)
Smartphones are nice devices for enabling the user to do a whole bunch of things, but there are plenty of scenarios where you don’t want the end-user doing all sorts of stuff on their devices. If you control a fleet of delivery drivers who carry a smartphone for keeping track of their routes & pickups, and having the customer sign for the delivery, you don’t want the driver playing Angry Birds on the device on their break. Quite often I hear enterprise customers asking "how do we lock down these devices so the user can’t mess it up"?
We can lock it down by placing it in what we call a "kiosk mode". A kiosk mode alters the interface so the end-user can only access very specific parts of the operating system. Most of us face these kinds of interfaces almost every day; paying for bus tickets on an unmanned machine, withdrawing money from ATMs, etc. And I think I’m not the only one to be happy that I face a simplified UI focused on the specific thing I’m trying to achieve.
iOS has what they refer to as "Guided Access" to put one app in focus, and while Android has no Google-provided feature (that I’m aware of) you can lock down Samsung devices by using their enterprise APIs.
Windows Mobile (old school pre-Metro) also had the ability to lock down the UI fairly good back in the day. Technically kiosk mode wasn’t officially supported or sanctioned, but is was possible to implement nonetheless through different tweaks.
Windows Phone however hasn’t had any ability to do this until now. With the 8.1 version bump Microsoft adds a kiosk mode, but prefers to call it "Assigned Access". The naming is in line with 8.1 non-phone, however how it works is not fully synchronized between the two operating systems. This post will focus only on the Windows Phone implementation.
The Assigned Access features consists of more than just slapping one app in front and saying that’s all you can use. You could say that you create a set of apps and settings to compile a complete kiosk experience.
The kiosk mode can to the best of my knowledge only be configured through MDM.
Let’s explain the settings exposed in the screenshot.
These are the apps that you want to include in the kiosk. It’s a whitelist of apps, so what you don’t include will not be visible. (I’m referring to the actual XML document being generated behind the scenes.) This goes for both first-party and third-party apps. Note that this controls the visibility of the app; if I manage to come up with a deep-link for something in an app that is installed it will trigger opening said app. This means that if you want to lock down the experience so that only visible apps will run you will need to combine this configuration with the whitelist/blacklist of apps in general. (Restricting apps from running does not require kiosk mode.)
The same approach that applies for controlling visibility of first-party apps also goes for first-party settings. This can be both "System" settings which are the ones you find when you go into the Settings applet, and "Application" settings. An Application setting is for instance opening Internet Explorer and accessing the app-specific settings page.
You can change how certain hardware buttons work; either locking down, (for "Press" and/or "Hold"), or remapping them (starting a different app than the default action).
"Camera", "Start" and "Search" can be locked down or remapped.
"Back" can be remapped, but not locked down.
"Volume Up", "Volume Down", and "Power" cannot be locked down or remapped.
The device as built by the OEM may have more or less physical buttons than the seven listed, but extra buttons cannot be controlled through the kiosk.
Be aware – some devices might use a combination of the hardware buttons as a hard reset mechanism for factory resetting your device when you’re not able to access the menu item for reset. If you change the button behavior you could be removing your "exit strategy", and end up with a bricked device in worst case! Make sure you know what you’re doing before messing with the buttons.
Windows Phone 8.1 introduces a notification center and quick settings feature. This setting allows you to disable the feature so the user cannot use this.
When you press and hold icons on a Windows Phone device you can move the icons around, change the size of the icons, or pin them to the start screen. This setting can be flipped so the user will not be able to customize the icons on the menus.
Start Screen Size
Hey, can I make a screen bigger through MDM? No, that’s not quite what this setting does 🙂
The start screen has a slightly different layout and scaling depending on what resolution you have, (some newer devices have 1080p whereas older models have 720p), and the physical size of the screen. A 6” screen with 1080p might have 6 tiles in a row, where a 4” with 720p only fits 3 tiles.
This setting enables you to control this layout through three different sizes called Small, Medium and Large. Medium is recommended for 720p and below, and Large is recommended for 1080p. You should probably play around with this to see what makes the most sense for your specific device and scenario.
Normally I recommend doing most MDM-related testing on an actual physical device, but this is an instance where I would recommend running a couple of tests on the emulator before "going live". Bricking devices is generally not something you want to do.
This isn’t one of those "fun" new features the end-user gets thrilled about, but I’d say it’s an appreciated addition for companies having task-specific needs.