Key Remapping
This page allows the user to reassign the keycodes of physical buttons of a Datalogic device to: other keycodes, text, broadcast an intent, or perform advanced scripted actions.

Supported devices and firmware
Memor 10, Memor 1, Memor K, and Joya Touch A6 devices are not supported
| Device | OS Version | Minimum Firmware Version | 
|---|---|---|
| Memor 35/35X | 13 | 1.07.001 | 
| Memor 30/30X | 13 | 1.07.001 | 
| Memor 17 | all | all supported | 
| Memor 12 | all | all supported | 
| Memor K25 | all | all supported | 
| Memor K20 | all | all supported | 
| Memor 11 | 11 13  | 1.09.19  2.01.04  | 
| Skorpio X5 | 13 | 4.04.004 | 
| Memor 20 | 13 | 4.04.004 | 
Actions
At the top of the Key Remapping page there are a few actions that can be performed to assist managing the key remappings of Datalogic devices.
Import Key Remapping
To import a key remapping JSON file, click the the Import Key Remapping button. Key remapping JSON files can be exported from supported Datalogic devices by going to Datalogic Settings -> Keyboard & touch -> View all remapped keys, then pressing the vertical ellipsis ⋮ and selecting Export mapping data.

The remapping file can then be found in the sdcard/Documents/DLKeyRemapStorage folder.
Export Key Remapping
To export a key remapping JSON file, click the the Export Key Remapping button. Key remapping JSON files can be installed through the com.datalogic.device.intent.action.keyremap.INSTALL intent with the following extras:
| Name | Type | Description | 
|---|---|---|
| com.datalogic.device.intent.extra.keyremap.JSON_PATH | string | File path to key remapping JSON file to install. | 
| com.datalogic.device.intent.extra.keyremap.REMOVE_CURRENT_CONFIGURATION | boolean | If true, clear previously configured key remappings. | 
Additionally, the key remapping JSON file can be imported into other Scan2Deploy profiles, as well as manually on the device by going to Datalogic Settings -> Keyboard & touch -> View all remapped keys, then pressing the vertical ellipsis ⋮ and selecting Import mapping data.
Remove existing key remappings
If checked, then any existing key remappings on a device are removed when the profile is applied.
Removing key remappings also applies to any key remapping definitions created in the Device Settings page.
Define Key Remappings
A list of key remappings that map input keycodes to a given output.
Input Options
The Input controls of the Key Remapping panel contains a selector that tabs through four different groupings of keycodes: Common, which contains keycodes that are often found on Datalogic devices; Alphanumeric, which contains keycodes 0-9 and A-Z; Symbols, which contains various symbols found on a keyboard; and Function, which contains F keys F1-F24. By default the input value is the common keycode SCAN R.

Output Options
The Output controls of the Key Remapping panel contains a selector that tabs through the four different options available: Keycode, output a given keycode with optional meta states; Text, output a given string; Intent, broadcast a given intent; and Script, output a sequence of given outputs and events. By default the output value is the keycode value BARCODE.

Intent
The Intent output option configures an intent to be broadcast. There are three different types of methods to configure the intent, the are:
| Type | Description | 
|---|---|
| Application | Pick an app to start the default activity of. | 
| URI | Write or paste an intent into a text field. | 
| Custom Intent | Use a form to build an intent. | 
Script
The Script output option maps an ordered set of actions to one or more key events of a button with the given input's keycode value. On the device this section is referred to as Advanced configuration. A input trigger event can be added by pressing the 
 button and the available events are:
| Input Trigger Event | Trigger Description | 
|---|---|
| Every press | Input key is pressed down. | 
| Every release | Input key is released. | 
| On long press | Input key is released after being held down longer than the long press timeout interval. | 
| On very long press | Input key is released after being held down longer than the very long press timeout interval. | 
| On single press | Input key is pressed once. | 
| On double press | Input key is pressed multiple times. | 
Each of these input trigger events can have a sequential list of script output actions associated with them, which are initiated when the trigger event occurs. A script output action can be added by pressing the 
 button and the available actions are:
| Script Output Actions | Description | 
|---|---|
| Key Action | Simulate a button's key action with a given keycode value and meta states. Key action options are Down & Up, Down, and Up. | 
| Intent | Broadcast a given intent. | 
| Text | Output a given string. | 
| Delay | Delay the next action by a given number of milliseconds. | 
Additionally, the timing configuration dictating the behavior of the input trigger events can be configured by clicking the 
 button. The configurable parameters are:
| Timing Parameter | Description | 
|---|---|
| Long Press Timeout Length | The length in milliseconds of the long press timeout interval, for the On long press trigger event. | 
| Very Long Press Timeout Length | The length in milliseconds of the very long press timeout interval, for the On very long press trigger event. | 
| Max Interval between DOWN / UP of Multipress | The length in milliseconds of the amount of time allowed between two key presses, to determine if they are two On single press trigger events, or a single On double press trigger event. | 
| Max Interval between each Multipress | The length in milliseconds of the amount of time allowed between consecutive On double press trigger events. | 
Add Remap
To add an additional key remapping, click the the Add remap button.