Menu

The Knox namespaces are changing

In July 2019, we are phasing out the old Knox namespaces to align with current Android conventions. To do this, you will need to migrate to the Knox SDK. For more information on how to update your app(s), read our migration guide.

About the Knox Customization SDK

On this page

The Samsung Knox Customization SDK is a comprehensive set of tools that lets you develop purpose-built devices for vertical markets. For example, you can develop informational kiosks for hospitality, in-flight entertainment systems for airlines, or point-of-sale devices for the retail industry.

With the Knox Customization SDK, you can develop apps that customize the end user experience on Samsung devices. You can control what apps users can access, and fully customize the device settings and operating system behavior for a particular app. You can lock down a device to provide only one (or a few) apps, and prevent end users from leaving these apps to use the underlying device operating system or other pre-installed apps. This allows you to fully customize devices to provide a controlled environment for targeted applications.

Audience

This guide is intended for Systems Integrators who develop apps for enterprises. It assumes that you are already familiar with the Android programming environment and Java programming language.

Features

To help you understand what you can do with the Knox Customization SDK, let us look at its APIs:

  • ProKioskManager — These APIs control the end user experience on a device. They can map the device’s Home key to any activity, display items in the status bar, hide notification messages, control what happens when the power key is long pressed, and so on.
  • SettingsManager — These APIs control the Android settings on a device, such as locale (language, region), motion control, power saving mode, network connectivity (Bluetooth, Wi-Fi, mobile data, GPS, USB Net wired IP connectivity, dynamic authorization of USB accessories, and ADB control), and so on.
  • SystemManager — These APIs control other system behavior such as remove screen lock, volume level, hardware sensors, auto rotation state, screen timeout, inactivity timer, and so on.

For more details about what API features are available, see the Knox Customization SDK API Reference.

Permissions

The Knox Customization APIs are grouped into the three Java classes above: ProKioskManager, SettingsManager, and SystemManager. You request access to each Java class by adding a Samsung-specific permission to your app’s Android manifest file. These permissions are granted when the app is installed on a device. Whenever an app calls a Customization method, the system checks if the app has the appropriate permission to do so.

ProKiosk mode

The key areas of a device that you can control in ProKiosk mode are:

  1. Home key — You can map any app to the home activity without setting the default activity flag. This enables easy dynamic switching between ProKiosk and non-ProKiosk mode.
  2. Status bar — You can show or hide individual elements of the status bar or notifications, or take control of the whole status bar.
  3. Notification — You can suppress system-wide notifications to deliver a clean UX to end users.

ProKiosk mode is an evolution of the kiosk mode introduced with the Knox Standard SDK. In kiosk mode, there are ways to circumvent the main app. This compromises the primary purpose of kiosk mode, which is to lock down the device. In ProKiosk mode, you can not only restrict access to a single app or set of apps, but you can also:

  • Prevent access to the Android settings
  • Disable S-Voice
  • Disable task switching
  • Disable Google search
  • Modify other system operations while in ProKiosk mode

Changes in v2.7

Version 2.7 of the Knox Customization SDK introduces new methods to the SettingsManager and SystemManager classes. For a complete list of these methods, see the Samsung Knox Customization SDK Release Notes version 2.7.

SettingsManager

Version 2.7 introduces the setFlightModeState() method, which provides the ability to turn flight mode on or off.

SystemManager

Version 2.7 introduces methods that enable you to customize the home screen by adding/removing shortcuts and widgets, set lockscreen shortcuts, set auto answer incoming call abilities, and so on. The following methods are new in 2.7:

Home screen customization:

  • addShortcutToHomeScreen()
  • removeShortcutFromHomeScreen()
  • addWidgetToHomeScreen()
  • removeWidgetFromHomeScreen()
  • removeKnoxCustomShortcutsFromHomeScreen()

Lock screen shortcuts:

  • setLockScreenShortcut()
  • getLockScreenShortcut()

Auto Answer Incoming Call settings:

  • setAutoCallPickupState()
  • getAutoCallPickupState()
  • addAutoCallNumber()
  • removeAutoCallNumber()
  • getAutoCallNumberList()
  • getAutoCallNumberDelay()
  • getAutoCallNumberAnswerMode()

Other device-related methods:

  • getMacAddress()
  • powerOff()
  • setUsbConnectionType()
  • getUsbConnectionType()

Changes in v2.7.1

APIs added for Xcover 4

Galaxy Xcover series are ruggedized devices designed to withstand the rigours of both water and dust. This device comes with a special hardware key called Xcover key. It is an extra button that can launch specific apps, or the embedded camera app. System Integrators (SIs) can customize the Galaxy Xcover 4 key for their B2B solution.

  • Configure an app to launch on the short key press or long key press of Xcover key.
  • Key remapping is available for both preloaded app and downloaded app

To the existing KNOX Customization SDK version 2.7.1, the following new APIs are added to SettingsManager class specifically for Xcover 4 device:

For details, see the Knox Customization SDK API Specifications for Xcover.

Deprecated APIs in 2.7.1

Due operating system and Samsung device UI changes, the following methods and constants have been deprecated, and will not work on devices running Android Nougat or above:

  • KnoxCustomManager.getSealedMultiWindowFixedState()
  • KnoxCustomManager.setSealedMultiWindowFixedState()
  • ProKioskManager.getMultiWindowFixedState()
  • ProKioskManager.setMultiWindowFixedState()
  • KnoxCustomManager.setLockscreenWallpaper()
  • SystemManager.setLockscreenWallpaper()
  • CustomDeviceManager.NOTIFICATIONS_SAFE_VOLUME (formerly used by ProKioskManager.setHideNotification-messages())
  • ProKioskManager.setPowerDialogItems()
  • CustomDeviceManager.POWER_DIALOG_AIRPLANEMODE
  • CustomDeviceManager.CALL_SCREEN_INCALL_MENU (formerly used by SystemManager.setCallScreenDisabledItems())
  • CustomDeviceManager.LOCK_SCREEN_ADDITIONAL_INFO (formerly used by SystemManager.setLockscreenHiddenItems())
  • KnoxCustomManager.setCustomOperatorName()

Note: Some deprecated methods have no replacements; see the Knox Customization SDK API Reference for complete method descriptions.

Changes in v2.8

Version 2.8 of the KNOX Customization SDK includes the following new features:

Power on and off control

The following are the two APIs added in the SystemManager class for power on/off control:

Using these new APIs SI's can:

  • Customize the power on/off for the devices.
  • Customize automatic power off when the power is disconnected.
  • Customize auto booting when USB power cable is connected.

 

Brightness control

The following is the new API added in the SettingsManager class for brightness control:

Using this new API, it is possible to customize the screen brightness level as a value between 0 and 255, or set for auto brightness.

Changes in v2.9

Knox Customization SDK v2.9 now provides the following new features, for a complete description - see the release notes.

SystemManager updates:

  • Favorite Apps — Control the application shortcuts that are displayed in the bottom row of the launcher home screen.
  • Home screen — Remove a page from the launcher including all shortcuts and contents.

Existing feature enhancements:

  • Home screen — New APIs added for adding/removing widgets and shortcuts to include support for the new launcher functionalities.

Knox Standard SDK

The Knox Customization SDK includes the Knox Standard SDK, which provides access to a comprehensive collection of Mobile Device Management (MDM) features. You can manage many aspects of Samsung devices to ensure that they meet enterprise requirements. You can control:

  • Hardware — Enable and disable the device cameras, Bluetooth, Wi-Fi, and USB connections.
  • Firmware — Revert devices to their original factory settings and force a firmware upgrade.
  • Phone — Enable and disable SMS and MMS; limit calls and SMS; disable data roaming and tethering.
  • Email — Configure Exchange ActiveSync, IMAP, and POP3 email accounts.
  • Connectivity — Control Wi-Fi, Access Point Name (APN), Web proxy, and Android VPN settings.
  • Security — Define password rules, encrypt data on the device, install certificates, configure firewall settings, and use Cisco AnyConnect.
  • SSO — Set up the SSO framework, assign apps to Identity Providers (IdP) (for example, Active Directory).
  • Data backup — Manage Google backups and enable mobile-to-PC syncing via Samsung Kies.
  • Expenses — Get cost-related information like call and SMS usage levels and call duration times.
  • Inventory — Get device info such as total memory usage, installed apps, and firmware version.
  • Location services — Locate a device, enforce territorial boundaries, and wipe a lost or stolen device to remove confidential data.
  • Remote Control — Send screen captures of devices and enable remote control of devices.

Typically, MDM vendors develop web-based MDM consoles that IT admins can use to centrally manage company devices. In this use case, the MDM consoles issue IT admin commands over-the-air to MDM apps on devices. However, when you use the Knox Customization SDK to lock down devices, you call the Knox Standard APIs from the device app, and eliminate the need for remote management.

For more details about the Knox Standard SDK, see the Knox Standard API Reference.

Interoperability

You can use the Knox Customization SDK to configure a device or use it in conjunction with the Knox Standard SDK. If you disable a device feature through the Knox Standard SDK, you cannot enable it through the Knox Customization SDK - the Knox Standard SDK takes precedence.