Keymapping Manager

Stagenow - 2.9

Overview

The KeyMappingMgr allows an app to modify the behavior of one or more physical (or capacitive) Keys when such Keys are pressed (or touched). It does so by remapping the keycode value delivered by the Key to one that performs the desired behavior.

Requirements

  • KeyMappingMgr is supported only on the following devices:
    • MC92
    • MC67
    • MC40
    • MC18
    • TC51
    • TC56
    • TC70x
    • TC75x
    • TC8000
    • VC80x
    • WT6000
  • Device must be running Android 4.4 KitKat or later
  • Device must contain MX 4.4 or higher

For key-mapping options on Android devices not listed above, please see the Enterprise Keyboard User Guide.

  • KeyMappingMgr is NOT supported on the following devices:
    • Any device not listed above, including:
    • TC75
    • TC70
    • TC55
    • MC36

For TC55 key-mapping options, see the Scan Mode Manager (not supported by EMDK).

Main Functionality

  • Remap one or more device Keys to:
    • Behave like a different Key
    • Execute a predefined trigger (i.e. scan a barcode)
    • Launch an application
    • Send an Intent
    • Do nothing
  • Reset all Key mappings to factory default values

Key Mapping is a capability offered on particular Zebra Android devices only. It allows keypress behavior to be defined for specific Key(s) or when a Key is in a given Key State. The Current Key State for a Key at any given time is determined by one or more Key State Modifiers that may have been applied as the result of presses of Modifier Keys. For example, a device with a Blue Key might set or clear the Blue-Key State Modifier in the Current Key State each time the Blue Key is pressed. Some Zebra devices support multiple Key State Modifiers to set the Current Key State; others do not.

The Key Behavior desired for a particular keypress in a particular Key State is defined by a Key Mapping in the Key Mapping Table. There are Key Mapping Tables associated with specific Key State Modifiers that can be set within the Current Key State. A Key Mapping for a Key that is defined in a given Key Mapping Table will be used only when the Key is pressed while the Key Modifier associated with that Key Mapping Table is set in the Current Key State. For example, when a Key is pressed while the Blue Key State Modifier is set in the Current Key State, the Blue Key Mapping Table would be searched to find a Key Mapping for that keypress.

Every device has a series of Default Key Mappings that are pre-installed in the Key Mapping Tables supported by that device. These Default Key Mappings define the default Key Behaviors for that device. To change the Default Key Behaviors for a device, new Key Mappings--called Override Key Mappings--can be added to one or more Key Mapping Tables. When a Mapping Table contains a Default Key Mapping and an Override Key Mapping for the same Key, the Override Key Mapping will be used. To revert to Default Key Behaviors, the Override Key Mappings can be removed, thereby restoring use of the Default Key Mappings. Default Key Mappings cannot be modified or removed, only overridden.

Key Mapping Table Searches

Key processing begins by checking the Current Key State at the time the Key was pressed. If multiple Key State Modifiers are set in the Current Key State, the Key Mapping Tables associated with those Key State Modifiers are searched in a fixed priority order based on their associated Key State Modifiers. If a Key Mapping for the pressed Key is found at any time during a search, searching stops and the found Key Mapping will be used to determine the Key Behavior to be performed for the pressed Key.

If all Key Mapping Tables associated with Key State Modifiers are searched without finding a Key Mapping for the pressed Key, the Base Key State Key Mapping Table is searched. If no Key Mapping for the pressed Key can be found, the default Android Key Behavior will be performed for the pressed Key. This will seldom be the case since most devices will have Default Key Mappings for all Keys defined in the Base Key State Mapping Table.

Not all devices support all Key State Modifiers, and hence not all devices will support all Key Mapping Tables. Some devices support multiple Key State Modifiers, and each device will support the Key Mapping Tables associated with all the Key State Modifiers that it supports. All devices support at least the Base Key State Key Mapping Table, even if they support no other Key Mapping Tables. The following Key State Modifiers and associated Key Mapping Tables may be supported by various devices. These Key Mapping Tables will be searched (when supported on a given device) in the order listed below, based on the Key State Modifiers that are set in the Current Key State.

On Android, modifier keys are referred to as Meta keys.

Key Table Search Order

  1. Blue-Key State Modifier and Blue-Key Mapping Table

    This Key Mapping Table is searched when the Blue Key State Modifier is set in the Current Key State at the time a Key is pressed. If a Key Mapping for the pressed Key is found, then that Key Mapping is used to determine the Key Behavior to be performed for the pressed Key. If no Key Mapping for the pressed Key is found, then searching continues with another Key Mapping Table.

  2. Orange-Key State Modifier and Orange-Key Mapping Table

    This Key Mapping Table is searched when the Orange Key State Modifier is set in the Current Key State at the time a Key is pressed. If a Key Mapping for the pressed Key is found, then that Key Mapping is used to determine the Key Behavior to be performed for the pressed Key. If no Key Mapping for the pressed Key is found, then searching continues with another Key Mapping Table.

  3. Grey-Key State Modifier and Grey-Key Mapping Table

    This Key Mapping Table is searched when the Grey Key State Modifier is set in the Current Key State at the time a Key is pressed. If a Key Mapping for the pressed Key is found, then that Key Mapping is used to determine the Key Behavior to be performed for the pressed Key. If no Key Mapping for the pressed Key is found, then searching continues with another Key Mapping Table.

  4. Control-Key State Modifier and Control-Key Mapping Table

    This Key Mapping Table is searched when the Control Key State Modifier is set in the Current Key State at the time a Key is pressed. If a Key Mapping for the pressed Key is found, then that Key Mapping is used to determine the Key Behavior to be performed for the pressed Key. If no Key Mapping for the pressed Key is found, then searching continues with another Key Mapping Table.

  5. Shift-Key State Modifier and Shift-Key Mapping Table

    This Key Mapping Table is searched when the Shift Key State Modifier is set in the Current Key State at the time a Key is pressed. If a Key Mapping for the pressed Key is found, then that Key Mapping is used to determine the Key Behavior to be performed for the pressed Key. If no Key Mapping for the pressed Key is found, then searching continues with another Key Mapping Table.

  6. Base-Key State Key Mapping Table

    The Base Key State Key Mapping Table is searched if no Key State Modifiers are set in the Current Key State (i.e. default Key State) at the time a Key is pressed. This Key Mapping is also searched if all Key Mapping Tables were searched based on the Key State Modifiers that were set in the Current Key State and no Key Mapping for the pressed Key was found (i.e. fall through). If the Base Key State Key Mapping Table is searched and no Key Mapping for the pressed Key is found, then the standard Android Key Action for the pressed Key will be performed.

Key Identifiers

Each Key Mapping in each Key Mapping Table defines a specific Key Behavior to be performed for a pressed Key when that Key Mapping Table is determined to be the most applicable one for that Key press. Every Key Mapping requires a specific Key to be identified. A Key is identified in Key Mapping Using a Key Identifier. Key Identifiers are constructed generally according to the rules below.

  • Text-Labeled Keys

    For a Key that is physically labeled with text, that label is used to identify the Key. For example, a Key that is physically labeled with the letter "A" would be identified as the "A" Key. In some cases, a Key might be physically labeled with an abbreviated text legend. For example, a Key that is physically labeled "BKSP" would be identified as "BACKSPACE" by the text description.

  • Graphically Labeled Keys

    For a Key that is physically labeled with a picture or icon or other graphical legend, a textual description of that graphical legend is used to identify the Key. For example, a Key with an icon of a house would be identified as "HOME" by the text description.

  • Color-Labeled Keys

    For a Key that is physically labeled with a color, a textual description of that color is used to identify the Key. For example, a Key that is colored blue would be identified as "BLUE" by the text description.

  • Unlabeled Keys

    For a Key that is not physically labeled in a unique manner, a textual description is used to identify the Key. This is usually based on its physical location on the device when held in its normal orientation (Landscape for tablets; Portrait for most other devices). When more than one such Key exists, they're numbered from top to bottom. For example, the top-most of two Keys used as triggers located on the left side of the device would be identified as "LEFT_TRIGGER_1" by the text description.

Note: The number and style of physical Keys varies greatly from one device to another, as do the key-press combinations that make the Keys work. The Key identification rules above do not apply to all devices, and in some rare cases are the opposite of those described.

Standards and Deviations

Keys that are not labeled are identified by their physical location on the device when held in its normal orientation (Landscape for tablets; Portrait for most other devices). When more than one Key is present on the left side of a device, for example, the Keys can usually be identified in numerical order from top to bottom as illustrated below:

img

img

Naming conventions for unlabeled buttons and Keys occasionally deviate due to engineering limitations, production restrictions or other factors. This can cause confusion as to which Key is which, and increases the guesswork required for Keymapping. The most common deviations are shown below (in red lettering). Use the Key Identifiers shown for each unlabeled button when remapping on these devices:


MC33 Key Identifiers

img


MC40 Key Identifiers

img


MC67 Key Identifiers

img


TC51/TC56/TC56HC Key Identifiers

img


TC70x/TC75x Key Identifiers

img


Key Behavior Identifiers

Each Key Mapping specifies a single Key Behavior that should be performed for a single Key identified by a specified Key Identifier. The Key Behaviors that can be defined are listed below.

  • Send Key code

    This Key Behavior indicates that the Key pressed should produce a standard Android Key Action, but not necessarily the standard Android Key Action for the Key that was pressed. Any desired Key Code can be assigned to any Key, and the standard Android Key Action for that Key Code will be performed. It's also possible to specify the Key State in which standard Android Key Action for the Key Code will be performed.

    Zebra provides unlimited flexibility to assign literally any desired standard Android Key Action to any Key when pressed in any Key State. For example, the "A" Key can be assigned to perform like the "Shift" Key State and produce the standard Android Key Action normally performed by the "2" Key when pressed in the "Unshifted" Key State.

  • Send trigger

    This Key Behavior indicates that the Key pressed should produce the effect of a physical trigger switch. Most devices have one or more "Trigger" Keys for which this is the Default Key Behavior. Such Keys are most often used to initiate Barcode Scanning, but can be used for anything if the right configuration is applied.

    A fixed set of eight (8) Triggers is supported, and are designated as Trigger 1 through Trigger 8. Triggers are most commonly used to provide a low-latency notification so that high priority events can be initiated. Some System applications on a device may register to be notified when various Triggers are sent. For example, the Scanning Subsystem on most devices uses Trigger 1 to initiate Barcode Scanning.

    Normal (non-System) applications cannot perform registration for Triggers, and therefore cannot use the "Send trigger" Key Behavior to invoke their application functionality. Such applications should use the "Launch application or "Send Intent" Key Behaviors instead. However, the KeyMappingMgr can be used by a non-System application to determine which Key(s) pressed in which Key State(s) will produce Triggers for which System applications have been registered.

  • Launch application

    This Key Behavior indicates that the Key pressed should launch an application of a specific name as if that application was launched by a device user using its main launcher icon. The same result could be achieved using the "Send Intent" Key Behavior, provided the right information about the Intent required to launch the application is known in advance. The "Launch application" Key Behavior makes launching an application much easier, but only to launch its main activity. If the need is to launch some other app activity or pass custom data to the application to tell it what to do, the "Send Intent" Key Behavior should be used instead.

  • Send Intent

    This Key Behavior indicates that the Key pressed should send an Intent, which can be sent to an application using startActivity or sendBroadcast. Supporting both types of Intents provides the flexibility to launch a variety of applications. In addition, various parameters can be configured for constructing the Intent to match it to the needs of an application. This includes attachment of an extra data value to communicate information about a desired action the application should perform.

    Since Intents are extremely flexible, an existing application might require an Intent that cannot be described with the relatively simplistic capabilities of the KeyMappingMgr. While it may be possible to meet the needs of some existing applications, the "Send Intent" Key Behavior is really designed to send Intents that are specifically designed and added to applications for this purpose.

  • Suppress key

    This Key Behavior indicates that the key-press should be completely ignored and produce no result.

  • Reset to default

    This Key Behavior indicates that the Default Key Mapping (if any) for a Key in a specified Key Mapping Table should be restored. This is done by removing any Override Key Mapping for the Key from the specified Key Mapping Table. If there is no Override Key Mapping for the Key in the specified Key Mapping Table, no change will be made.

On Android, modifier keys are referred to as Meta keys.

Action

Controls whether a Key Mapping will be added/modified for an individual key or all Key Mappings will be returned their default state for the device.

Note: To configure a device with a prior state that is not known, it is sometimes advisable to begin by returning Key Mapping to the default state. In that way, subsequently added Override Key Mappings will be starting from a known state and are therefore more likely to achieve a desired result. However, if the intention is to define a set of Key Mappings that are required by a specific application, it might be preferable to start from the current state (whatever that state might be) and alter it by adding or modifying selected Override Key Mappings without otherwise altering the state of Key Mapping for the device.

Parm Name: Action

Option Name Description Model Requires
1 Remap a key Adds or modifies Override Key Mappings for a single Key for one or more Key Mapping Tables. Each Override Key Mapping added or modified alters the Behavior of exactly one Key in one or more of its Key States. N/A on TC20/TC25

MX: 4.4+

2 Default all key mappings Causes all Override Key Mappings to be removed from all Key Mapping Tables and sets all Key Mappings to their default values for the device. N/A on TC20/TC25

MX: 4.4+

Key Identifier

Used to identify the Key for which an Override-Key Mapping will be added or modified. To add or modify an Override Mapping for a Key, specify the Option (Key Identifier) listed in the table below that matches the friendly Name and Description of the Key to be mapped.

Not all devices have Keys for every Key Identifier in the table. Attempts to add an Override Mapping for a Key that is not present on a device will produce an error in the Result XML. For a list of supported Keys on a specific device, query the KeyMappingMgr for Key Identifiers (see Queries, below) or refer to the device documentation. For known deviations from these standards, see the Standards and Deviations section of the Overview at the top of this page.

Shown if: The Action value is "Remap a key"

Parm Name: KeyIdentifier

Option Name Description Model Requires
(null) None A null value (or the absence this parm from the XML) will result in no Key Mapping action; any previously selected setting will be retained. N/A on TC20/TC25

MX: 4.4+

0-9 Number Keys Specify a number to select the corresponding numerical key. For example, specify the number "2" to select the "2" key. N/A on TC20/TC25

MX: 4.4+

A-Z Alpha Keys Specify a letter of the alphabet to select the corresponding key. For example, specify the letter "A" to select the "A" key. N/A on TC20/TC25

MX: 4.4+

F1-F12 Function Keys Use "F" plus the number of the desired function key. For example, specify "F10" to select the "F10" key. N/A on TC20/TC25

MX: 4.4+

ENTER Enter The "Enter" key on the device (might be different than the "Return" key) N/A on TC20/TC25

MX: 4.4+

UP Up The Up-arrow key N/A on TC20/TC25

MX: 4.4+

DOWN Down The Down-arrow key N/A on TC20/TC25

MX: 4.4+

LEFT Left The Left-arrow key N/A on TC20/TC25

MX: 4.4+

RIGHT Right The Right-arrow key N/A on TC20/TC25

MX: 4.4+

ESC Escape The Escape or "ESC" key N/A on TC20/TC25

MX: 4.4+

BACKSPACE Backspace The Backspace or "BKSP" key N/A on TC20/TC25

MX: 4.4+

DOT Period The period or "dot" key N/A on TC20/TC25

MX: 4.4+

STAR Star The "Star" key (this is not the "asterisk" key) N/A on TC20/TC25

MX: 4.4+

POUND Pound The Pound ("#") or number-sign key N/A on TC20/TC25

MX: 4.4+

SPACE Space The Space key or spacebar N/A on TC20/TC25

MX: 4.4+

RETURN Return The "Return" key (might be different than the "Enter" key) N/A on TC20/TC25

MX: 4.4+

CLR Clear The "Clear" key N/A on TC20/TC25

MX: 4.4+

FIELD_EXIT Field Exit The "Field Exit" key N/A on TC20/TC25

MX: 4.4+

ALT Alt The "Alt" modifier/meta key N/A on TC20/TC25

MX: 4.4+

CTRL Control The Control or "CRTL" modifier/meta key N/A on TC20/TC25

MX: 4.4+

SHIFT Shift The "SHIFT" modifier/meta key N/A on TC20/TC25

MX: 4.4+

BLUE Blue The key that is colored completely blue (sometimes known as the "Function" key) N/A on TC20/TC25

MX: 4.4+

ORANGE Orange The key that is colored completely orange (sometimes known as the "Alpha" key) N/A on TC20/TC25

MX: 4.4+

GREEN Green Dot The key with a green dot on it N/A on TC20/TC25

MX: 4.4+

RED Red Dot The key with a red dot on it N/A on TC20/TC25

MX: 4.4+

VOLUMEUP Volume Up The key that increases the audio volume on the device N/A on TC20/TC25

MX: 4.4+

VOLUMEDOWN Volume Down The key that decreases the audio volume on the device N/A on TC20/TC25

MX: 4.4+

SCAN Scan The key or button that invokes the device scanner N/A on TC20/TC25

MX: 4.4+

GRIP_TRIGGER Grip Trigger Usually the upper-most button on the hand grip N/A on TC20/TC25

MX: 4.4+

GRIP_TRIGGER_2 Grip Trigger 2 The lower button on the hand grip when two grip buttons are present on the device N/A on TC20/TC25

MX: 6.1+

LEFT_TRIGGER_1 Button L1 Usually the upper-most button on the left side of the device N/A on TC20/TC25

MX: 4.4+

LEFT_TRIGGER_2 Button L2 The lower button on the left side of the device when two buttons are present on the left side N/A on TC20/TC25

MX: 4.4+

RIGHT_TRIGGER_1 Button R1 Usually the upper-most button on the right side of the device N/A on TC20/TC25

MX: 4.4+

RIGHT_TRIGGER_2 Button R2 The lower button on the right side of the device when two buttons are present on the right side N/A on TC20/TC25

MX: 4.4+

HEADSET_HOOK Headset Button The button that picks up/hangs up the headset N/A on TC20/TC25

MX: 4.4+

BACK Back The "BACK" key, button or capacitive button on the device N/A on TC20/TC25

MX: 4.4+

HOME Home The "HOME" key, button or capacitive button on the device N/A on TC20/TC25

MX: 4.4+

MENU Menu The "MENU" key, button or capacitive button on the device N/A on TC20/TC25

MX: 4.4+

RECENT Recent The "Recent Apps" key, button or capacitive button on the device N/A on TC20/TC25

MX: 4.4+

SEARCH Search The "Search" key, button or capacitive button on the device N/A on TC20/TC25

MX: 4.4+

KEYLIGHT Keyboard Backlight The keyboard backlight key or button on the device N/A on TC20/TC25

MX: 4.4+

LAMP Display Backlight The display-screen backlight key or button on the device N/A on TC20/TC25

MX: 4.4+

POWER Power The "Power" (on/off) key or button on the device N/A on TC20/TC25

MX: 4.4+

P1 P1 Button The button marked "P1" N/A on TC20/TC25

MX: 5.2+

P2 P2 Button The button marked "P2" N/A on TC20/TC25

MX: 5.2+

P3 P3 Button The button marked "P3" N/A on TC20/TC25

MX: 5.2+

REAR_BUTTON Rear Button The button on the rear of the device N/A on TC20/TC25

MX: 6.1+

LEFT_EXTERNAL_TRIGGER Left External Trigger The trigger button on the left side of an external triggering device N/A on TC20/TC25

MX: 5.2+

RIGHT_EXTERNAL_TRIGGER Right External Trigger The trigger button on the right side of an external triggering device N/A on TC20/TC25

MX: 5.2+

NAV_PAD Touch NAV_PAD The touch-sensitive navigation pad on a device N/A on TC20/TC25

MX: 6.2+

M1 Macro 1 The Zebra VC80x M1 key N/A on TC20/TC25

MX: 7.1+

M2 Macro 2 The Zebra VC80x M2 key N/A on TC20/TC25

MX: 7.1+

M3 Macro 3 The Zebra VC80x M3 key N/A on TC20/TC25

MX: 7.1+

M4 Macro 4 The Zebra VC80x M4 key N/A on TC20/TC25

MX: 7.1+

M5 Macro 5 The Zebra VC80x M5 key N/A on TC20/TC25

MX: 7.1+

M6 Macro 6 The Zebra VC80x M6 key N/A on TC20/TC25

MX: 7.1+

BRIGHTNESSUP Brightness Up The "brightness up" key of the Zebra VC80x N/A on TC20/TC25

MX: 7.1+

BRIGHTNESSDOWN Brightness Down The "brightness down" key of the Zebra VC80x N/A on TC20/TC25

MX: 7.1+

KEYBOARD Keyboard The keyboard key of the Zebra VC80x N/A on TC20/TC25

MX: 7.1+

Key Base Behavior

Used to select the Key Behavior defined in the Base Key State Mapping Table for the Key Mapping of a specified Key.

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None"

Parm Name: BaseBehavior

Option Name Description Model Requires
0 No change This value (or the absence of this parm from the XML) will make no change to the Key Behavior of the specified Key in the Base Key State Mapping Table; any previously selected setting will be retained. N/A on TC20/TC25

MX: 4.4+

1 Send trigger Causes the Key Behavior for the specified Key in the Base Key State Mapping Table to act as one of the pre-defined Triggers, notifying whichever applications are registered for the selected Trigger. N/A on TC20/TC25

MX: 4.4+

2 Send key-code Causes the Key Behavior for the specified Key in the Base Key State Mapping Table to act like a different specified Key. N/A on TC20/TC25

MX: 4.4+

3 Send Intent Causes the Key Behavior for the Key in the Base Key State Mapping Table to send an Intent with specified attributes. N/A on TC20/TC25

MX: 4.4+

4 Launch application Causes the Key Behavior for the Key in the Base Key State Mapping Table to launch a specified application. N/A on TC20/TC25

MX: 4.4+

5 Suppress key Causes the Key Behavior for the Key in the Base Key State Mapping Table to be ignored and to act as if the Key was never pressed. N/A on TC20/TC25

MX: 4.4+

7 Reset to default Causes the Key Behavior for the Key in the Base Key State Mapping Table to revert to the Default Key Behavior. N/A on TC20/TC25

MX: 4.4+

Key Behavior in Blue, Orange, Grey, Shift and Control Modes

This parm is the same as the parm "Key behavior" except that instead of defining the Key Behavior for the Base Key State Mapping Table, it defines the Key Behavior for the Blue, Orange, Grey, Shift and Control Key State Mapping Table.

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None"

Parm Name: BlueBehavior,OrangeBehavior,GreyBehavior,ShiftBehavior,ControlBehavior

Option Name Description Model Requires
0 No change This value (or the absence of this parm from the XML) will make no change to the Key Behavior of the specified Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table; any previously selected setting will be retained. N/A on TC20/TC25

MX: 4.4+

1 Send trigger This value will cause the Key Behavior for the specified Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table to be changed such that the Key will act as a one of the pre-defined Triggers and hence will cause whatever applications are registered for the selected Trigger to be notified. N/A on TC20/TC25

MX: 4.4+

2 Send key-code This value will cause the Key Behavior for the specified Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table to be changed such that the Key acts like a different specified Key. N/A on TC20/TC25

MX: 4.4+

3 Send Intent This value will cause the Key Behavior for the Key in the Base Key State Mapping Table to be changed such that the Key will send an Intent with specified attributes. N/A on TC20/TC25

MX: 4.4+

4 Launch application This value will cause the Key Behavior for the Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table to be changed such that the Key will launch a specified application. N/A on TC20/TC25

MX: 4.4+

5 Suppress key This value will cause the Key Behavior for the Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table to be changed such that the Key will be ignored and to act as if the Key was never pressed. N/A on TC20/TC25

MX: 4.4+

7 Reset to default This value will cause the Key Behavior for the Key in the Blue, Orange, Grey, Shift and Control Key State Mapping Table to be changed such that the Default Key Behavior is restored. N/A on TC20/TC25

MX: 4.4+

Key Code

Used to specify which Key Code will be sent as the Key Behavior for the specified Key in any Key State Mapping Table. All parameters use the same values shown in the Base Key State Mapping Table.

Note: All the parameters shown here allow control of the Key State(s) under which the Key Code will be sent. Parameters for controlling those settings are covered in the Advanced Sections. Attempts to specify a Key Behavior for a Key Mapping Table that is not supported on a given device will return an error in the Result XML. For the Key Mapping Tables supported on a specific device, query the KeyMappingMgr (see Queries, below) or refer to the device documentation.

Parm names:

  • For Base Key State Table: BaseKeyCode
  • For Blue Key State Table: BlueKeyCode
  • For Orange Key State Table: OrangeKeyCode
  • For Grey Key State Table: GreyKeyCode
  • For Shift Key State Table: ShiftKeyCode
  • For Control Key State Table: ControlKeyCode

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send key-code"

Parm Name: BaseKeyCode,BlueKeyCode,OrangeKeyCode,GreyKeyCode,ShiftKeyCode,ControlKeyCode

Option Name Description Model Requires
7 0 N/A on TC20/TC25

MX: 4.4+

8 1 N/A on TC20/TC25

MX: 4.4+

9 2 N/A on TC20/TC25

MX: 4.4+

10 3 N/A on TC20/TC25

MX: 4.4+

11 4 N/A on TC20/TC25

MX: 4.4+

12 5 N/A on TC20/TC25

MX: 4.4+

13 6 N/A on TC20/TC25

MX: 4.4+

14 7 N/A on TC20/TC25

MX: 4.4+

15 8 N/A on TC20/TC25

MX: 4.4+

16 9 N/A on TC20/TC25

MX: 4.4+

29 A N/A on TC20/TC25

MX: 4.4+

30 B N/A on TC20/TC25

MX: 4.4+

31 C N/A on TC20/TC25

MX: 4.4+

32 D N/A on TC20/TC25

MX: 4.4+

33 E N/A on TC20/TC25

MX: 4.4+

34 F N/A on TC20/TC25

MX: 4.4+

35 G N/A on TC20/TC25

MX: 4.4+

36 H N/A on TC20/TC25

MX: 4.4+

37 I N/A on TC20/TC25

MX: 4.4+

38 J N/A on TC20/TC25

MX: 4.4+

39 K N/A on TC20/TC25

MX: 4.4+

40 L N/A on TC20/TC25

MX: 4.4+

41 M N/A on TC20/TC25

MX: 4.4+

42 N N/A on TC20/TC25

MX: 4.4+

43 O N/A on TC20/TC25

MX: 4.4+

44 P N/A on TC20/TC25

MX: 4.4+

45 Q N/A on TC20/TC25

MX: 4.4+

46 R N/A on TC20/TC25

MX: 4.4+

47 S N/A on TC20/TC25

MX: 4.4+

48 T N/A on TC20/TC25

MX: 4.4+

49 U N/A on TC20/TC25

MX: 4.4+

50 V N/A on TC20/TC25

MX: 4.4+

51 W N/A on TC20/TC25

MX: 4.4+

52 X N/A on TC20/TC25

MX: 4.4+

53 Y N/A on TC20/TC25

MX: 4.4+

54 Z N/A on TC20/TC25

MX: 4.4+

66 Enter N/A on TC20/TC25

MX: 4.4+

61 Tab N/A on TC20/TC25

MX: 4.4+

62 Space N/A on TC20/TC25

MX: 4.4+

111 Escape N/A on TC20/TC25

MX: 4.4+

67 Delete N/A on TC20/TC25

MX: 4.4+

131 F1 N/A on TC20/TC25

MX: 4.4+

132 F2 N/A on TC20/TC25

MX: 4.4+

133 F3 N/A on TC20/TC25

MX: 4.4+

134 F4 N/A on TC20/TC25

MX: 4.4+

135 F5 N/A on TC20/TC25

MX: 4.4+

136 F6 N/A on TC20/TC25

MX: 4.4+

137 F7 N/A on TC20/TC25

MX: 4.4+

138 F8 N/A on TC20/TC25

MX: 4.4+

139 F9 N/A on TC20/TC25

MX: 4.4+

140 F10 N/A on TC20/TC25

MX: 4.4+

141 F11 N/A on TC20/TC25

MX: 4.4+

142 F12 N/A on TC20/TC25

MX: 4.4+

144 NUMPAD 0 N/A on TC20/TC25

MX: 4.4+

145 NUMPAD 1 N/A on TC20/TC25

MX: 4.4+

146 NUMPAD 2 N/A on TC20/TC25

MX: 4.4+

147 NUMPAD 3 N/A on TC20/TC25

MX: 4.4+

148"" NUMPAD 4 N/A on TC20/TC25

MX: 4.4+

149 NUMPAD 5 N/A on TC20/TC25

MX: 4.4+

150 NUMPAD 6 N/A on TC20/TC25

MX: 4.4+

151 NUMPAD 7 N/A on TC20/TC25

MX: 4.4+

152 NUMPAD 8 N/A on TC20/TC25

MX: 4.4+

153 NUMPAD 9 N/A on TC20/TC25

MX: 4.4+

154 NUMPAD Divide N/A on TC20/TC25

MX: 4.4+

155 NUMPAD Multiply N/A on TC20/TC25

MX: 4.4+

156 NUMPAD Subtract N/A on TC20/TC25

MX: 4.4+

157 NUMPAD Add N/A on TC20/TC25

MX: 4.4+

158 NUMPAD Period N/A on TC20/TC25

MX: 4.4+

159 NUMPAD Comma N/A on TC20/TC25

MX: 4.4+

160 NUMPAD Enter N/A on TC20/TC25

MX: 4.4+

161 NUMPAD Equals N/A on TC20/TC25

MX: 4.4+

162 NUMPAD Left Parenthesis N/A on TC20/TC25

MX: 4.4+

163 NUMPAD Right Parenthesis N/A on TC20/TC25

MX: 4.4+

19 DPAD Up N/A on TC20/TC25

MX: 4.4+

20 DPAD Down N/A on TC20/TC25

MX: 4.4+

21 DPAD Left N/A on TC20/TC25

MX: 4.4+

22 DPAD Right N/A on TC20/TC25

MX: 4.4+

23 DPAD Center N/A on TC20/TC25

MX: 4.4+

122 Move Home N/A on TC20/TC25

MX: 4.4+

123 Move End N/A on TC20/TC25

MX: 4.4+

92 Page Up N/A on TC20/TC25

MX: 4.4+

93 Page Down N/A on TC20/TC25

MX: 4.4+

124 Insert N/A on TC20/TC25

MX: 4.4+

112 Forward Delete N/A on TC20/TC25

MX: 4.4+

28 Clear N/A on TC20/TC25

MX: 4.4+

10027 Blue N/A on TC20/TC25

MX: 4.4+

10028 Orange N/A on TC20/TC25

MX: 4.4+

10029 Grey N/A on TC20/TC25

MX: 4.4+

10030 Alt N/A on TC20/TC25

MX: 4.4+

10031 Control N/A on TC20/TC25

MX: 4.4+

10032 Shift N/A on TC20/TC25

MX: 4.4+

10034 Keyboard N/A on TC20/TC25

MX: 7.1+

59 Left Shift N/A on TC20/TC25

MX: 4.4+

60 Right Shift N/A on TC20/TC25

MX: 4.4+

57 Left Alt N/A on TC20/TC25

MX: 4.4+

58 Right Alt N/A on TC20/TC25

MX: 4.4+

113 Left Control N/A on TC20/TC25

MX: 4.4+

114 Right Control N/A on TC20/TC25

MX: 4.4+

117 Meta Left N/A on TC20/TC25

MX: 4.4+

118 Meta Right N/A on TC20/TC25

MX: 4.4+

115 Caps Lock N/A on TC20/TC25

MX: 4.4+

143 Num Lock N/A on TC20/TC25

MX: 4.4+

116 Scroll Lock N/A on TC20/TC25

MX: 4.4+

120 SysRq N/A on TC20/TC25

MX: 4.4+

121 Break N/A on TC20/TC25

MX: 4.4+

119 Function N/A on TC20/TC25

MX: 4.4+

81 Plus N/A on TC20/TC25

MX: 4.4+

69 Minus N/A on TC20/TC25

MX: 4.4+

70 Equals N/A on TC20/TC25

MX: 4.4+

71 Left Bracket N/A on TC20/TC25

MX: 4.4+

72 Right Bracket N/A on TC20/TC25

MX: 4.4+

68 Grave N/A on TC20/TC25

MX: 4.4+

76 Slash N/A on TC20/TC25

MX: 4.4+

73 Backslash N/A on TC20/TC25

MX: 4.4+

74 Semicolon N/A on TC20/TC25

MX: 4.4+

75 Apostrophe N/A on TC20/TC25

MX: 4.4+

55 Comma N/A on TC20/TC25

MX: 4.4+

56 Period N/A on TC20/TC25

MX: 4.4+

17 Star N/A on TC20/TC25

MX: 4.4+

18 Pound N/A on TC20/TC25

MX: 4.4+

77 At N/A on TC20/TC25

MX: 4.4+

4 Back N/A on TC20/TC25

MX: 4.4+

125 Forward N/A on TC20/TC25

MX: 4.4+

3 Home N/A on TC20/TC25

MX: 4.4+

82 Menu N/A on TC20/TC25

MX: 4.4+

176 Settings N/A on TC20/TC25

MX: 4.4+

187 Application Switch N/A on TC20/TC25

MX: 4.4+

210 Calculator N/A on TC20/TC25

MX: 4.4+

64 Explorer N/A on TC20/TC25

MX: 4.4+

65 Envelope N/A on TC20/TC25

MX: 4.4+

174 Bookmark N/A on TC20/TC25

MX: 4.4+

209 Music N/A on TC20/TC25

MX: 4.4+

5 Call N/A on TC20/TC25

MX: 4.4+

6 End Call N/A on TC20/TC25

MX: 4.4+

91 Microphone Mute N/A on TC20/TC25

MX: 4.4+

27 Camera N/A on TC20/TC25

MX: 4.4+

84 Search N/A on TC20/TC25

MX: 4.4+

207 Contacts N/A on TC20/TC25

MX: 4.4+

208 Calendar N/A on TC20/TC25

MX: 4.4+

24 Volume Up N/A on TC20/TC25

MX: 4.4+

25 Volume Down N/A on TC20/TC25

MX: 4.4+

164 Volume Mute N/A on TC20/TC25

MX: 4.4+

221 Brightness Up N/A on TC20/TC25

MX: 4.4+

220 Brightness Down N/A on TC20/TC25

MX: 4.4+

26 Power N/A on TC20/TC25

MX: 4.4+

223 Sleep N/A on TC20/TC25

MX: 4.4+

224 Wakeup N/A on TC20/TC25

MX: 4.4+

79 Headset N/A on TC20/TC25

MX: 4.4+

228 Push-to-talk N/A on TC20/TC25

MX: 4.4+

80 Camera Focus N/A on TC20/TC25

MX: 4.4+

85 Media Play/Pause N/A on TC20/TC25

MX: 4.4+

86 Media Stop N/A on TC20/TC25

MX: 4.4+

87 Media Next N/A on TC20/TC25

MX: 4.4+

88 Media Previous N/A on TC20/TC25

MX: 4.4+

89 Media Rewind N/A on TC20/TC25

MX: 4.4+

90 Media Fast-Forward N/A on TC20/TC25

MX: 4.4+

126 Media Play N/A on TC20/TC25

MX: 4.4+

127 Media Pause N/A on TC20/TC25

MX: 4.4+

128 Media Close N/A on TC20/TC25

MX: 4.4+

129 Media Eject N/A on TC20/TC25

MX: 4.4+

130 Media Record N/A on TC20/TC25

MX: 4.4+

102 Button L1 N/A on TC20/TC25

MX: 4.4+

103 Button R1 N/A on TC20/TC25

MX: 4.4+

104 Button L2 N/A on TC20/TC25

MX: 4.4+

105 Button R2 N/A on TC20/TC25

MX: 4.4+

96 Button A N/A on TC20/TC25

MX: 4.4+

97 Button B N/A on TC20/TC25

MX: 4.4+

98 Button C N/A on TC20/TC25

MX: 4.4+

99 Button X N/A on TC20/TC25

MX: 4.4+

100 Button Y N/A on TC20/TC25

MX: 4.4+

101 Button Z N/A on TC20/TC25

MX: 4.4+

106 Left Thumb Button N/A on TC20/TC25

MX: 4.4+

107 Right Thumb Button N/A on TC20/TC25

MX: 4.4+

108 Start Button N/A on TC20/TC25

MX: 4.4+

109 Select Button N/A on TC20/TC25

MX: 4.4+

110 Mode Button N/A on TC20/TC25

MX: 4.4+

188 Gamepad Button 1 N/A on TC20/TC25

MX: 4.4+

189 Gamepad Button 2 N/A on TC20/TC25

MX: 4.4+

190 Gamepad Button 3 N/A on TC20/TC25

MX: 4.4+

191 Gamepad Button 4 N/A on TC20/TC25

MX: 4.4+

192 Gamepad Button 5 N/A on TC20/TC25

MX: 4.4+

193 Gamepad Button 6 N/A on TC20/TC25

MX: 4.4+

194 Gamepad Button 7 N/A on TC20/TC25

MX: 4.4+

195 Gamepad Button 8 N/A on TC20/TC25

MX: 4.4+

196 Gamepad Button 9 N/A on TC20/TC25

MX: 4.4+

197 Gamepad Button 10 N/A on TC20/TC25

MX: 4.4+

198 Gamepad Button 11 N/A on TC20/TC25

MX: 4.4+

199 Gamepad Button 12 N/A on TC20/TC25

MX: 4.4+

200 Gamepad Button 13 N/A on TC20/TC25

MX: 4.4+

201 Gamepad Button 14 N/A on TC20/TC25

MX: 4.4+

202 Gamepad Button 15 N/A on TC20/TC25

MX: 4.4+

203 Gamepad Button 16 N/A on TC20/TC25

MX: 4.4+

211 Zenkaku/Hankaku N/A on TC20/TC25

MX: 4.4+

212 Eisu N/A on TC20/TC25

MX: 4.4+

213 Muhenkan N/A on TC20/TC25

MX: 4.4+

214 Henkan N/A on TC20/TC25

MX: 4.4+

215 Katakana/Hiragana N/A on TC20/TC25

MX: 4.4+

216 Yen N/A on TC20/TC25

MX: 4.4+

217 Ro N/A on TC20/TC25

MX: 4.4+

218 Kana N/A on TC20/TC25

MX: 4.4+

Advanced

Controls whether to use the Advanced section for a Key Mapping Table. All Advanced parms use the values shown in the table below.

Each Key State Mapping Table has its own Advanced Section via which can be used to specify Key State Modifiers that will be set into the Current Key State when a Key Code is sent as the Key Behavior for the specified Key in that Key State Mapping Table.

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior for the Mapping Table is "Send key-code"

Parm Name: BaseKeyCodeAdvanced,BlueKeyCodeAdvanced,OrangeKeyCodeAdvanced,GreyKeyCodeAdvanced,ShiftKeyCodeAdvanced,ControlKeyCodeAdvanced

Option Name Description Model Requires
1 true This value indicates that Advanced section will be specified. N/A on TC20/TC25

MX: 4.4+

2 false This value (or the absence of this parm from the XML) indicates that the Advanced section will not be specified. N/A on TC20/TC25

MX: 4.4+

Shift State

Used to control the Shift Key State Modifier when the Key Code is sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Note: If an attempt is made to set a Key State Modifier that is not supported on a given device, no error will be returned in the Result XML because the action has no noticeable effect. When the Key Code is sent, the specified Key State Modifier will be sent to the Current Key State but it makes no change to the Key Mapping Table.

Parm names:

  • For Base Key State Table: BaseKeyCodeShiftState
  • For Blue Key State Table: BlueKeyCodeShiftState
  • For Orange Key State Table: OrangeKeyCodeShiftState
  • For Grey Key State Table: GreyKeyCodeShiftState
  • For Shift Key State Table: ShiftKeyCodeShiftState
  • For Control Key State Table: ControlKeyCodeShiftState

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send key-code" and Advanced is "True"

Parm Name: BaseKeyCodeShiftState,BlueKeyCodeShiftState,OrangeKeyCodeShiftState,GreyKeyCodeShiftState,ShiftKeyCodeShiftState,ControlKeyCodeShiftState

Option Name Description Model Requires
0 Use existing state This value (or the absence of this parm from the XML) will cause the Shift Key State Modifier to be left unchanged, thus making it the same as when the Key was pressed. N/A on TC20/TC25

MX: 4.4+

1 Force On This value will set the Shift Key State Modifier, thus forcing the Key Code sent to be interpreted as Shifted. N/A on TC20/TC25

MX: 4.4+

2 Force Off This value will clear the Shift Key State Modifier, thus forcing the Key Code sent to be interpreted as non-Shifted. N/A on TC20/TC25

MX: 4.4+

Alt State

Control the ALT Key State Modifier when the Key Code is sent as the Key Behavior for the specified Key in the corresponding Key State Mapping Table.

Note: If an attempt is made to set a Key State Modifier that is not supported on a given device, no error will be returned in the Result XML because the action has no noticeable effect. When the Key Code is sent, the specified Key State Modifier will be sent to the Current Key State but it makes no change to the Key Mapping Table.

Parm names:

  • For Base Key State Table: BaseKeyCodeAltState
  • For Blue Key State Table: BlueKeyCodeAltState
  • For Orange Key State Table: OrangeKeyCodeAltState
  • For Grey Key State Table: GreyKeyCodeAltState
  • For Shift Key State Table: ShiftKeyCodeAltState
  • For Control Key State Table: ControlKeyCodeAltState

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send key-code" and Advanced is "True"

Parm Name: BaseKeyCodeAltState,BlueKeyCodeAltState,OrangeKeyCodeAltState,GreyKeyCodeAltState,ShiftKeyCodeAltState,ControlKeyCodeAltState

Option Name Description Model Requires
0 Use existing state This value (or the absence of this parm from the XML) will cause the ALT Key State Modifier to be left unchanged, thus making it the same as when the Key was pressed. N/A on TC20/TC25

MX: 4.4+

1 Force On This value will set the ALT Key State Modifier, thus forcing the Key Code sent to be interpreted as ALT. N/A on TC20/TC25

MX: 4.4+

2 Force Off This value will clear the Shift Key State Modifier, thus forcing the Key Code sent to be interpreted as non-ALT. N/A on TC20/TC25

MX: 4.4+

FN State

These parms allow you to control the Function Key State Modifier when the Key Code is sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Note: If an attempt is made to set a Key State Modifier that is not supported on a given device, no error will be returned in the Result XML because the action has no noticeable effect. When the Key Code is sent, the specified Key State Modifier will be sent to the Current Key State but it makes no change to the Key Mapping Table.

Parm names:

  • For Base Key State Table: BaseKeyCodeFnState
  • For Blue Key State Table: BlueKeyCodeFnState
  • For Orange Key State Table: OrangeKeyCodeFnState
  • For Grey Key State Table: GreyKeyCodeFnState
  • For Shift Key State Table: ShiftKeyCodeFnState
  • For Control Key State Table: ControlKeyCodeFnState

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send key-code" and Advanced is "True"

Parm Name: BaseKeyCodeFnState,BlueKeyCodeFnState,OrangeKeyCodeFnState,GreyKeyCodeFnState,ShiftKeyCodeFnState,ControlKeyCodeFnState

Option Name Description Model Requires
0 Use existing state This value (or the absence of this parm from the XML) will cause the Function Key State Modifier to be left unchanged, thus making it the same as when the Key was pressed. N/A on TC20/TC25

MX: 4.4+

1 Force On This value will set the Control Key State Modifier, thus forcing the Key Code sent to be interpreted as Function. N/A on TC20/TC25

MX: 4.4+

2 Force Off This value will clear the Shift Key State Modifier, thus forcing the Key Code sent to be interpreted as non-Function. N/A on TC20/TC25

MX: 4.4+

CTRL State

Controls the Control Key State Modifier when the Key Code is sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Note: If an attempt is made to set a Key State Modifier that is not supported on a given device, no error will be returned in the Result XML because the action has no noticeable effect. When the Key Code is sent, the specified Key State Modifier will be sent to the Current Key State but it makes no change to the Key Mapping Table.

Parm names:

  • For Base Key State Table: BaseKeyCodeCtrlState
  • For Blue Key State Table: BlueKeyCodeCtrlState
  • For Orange Key State Table: OrangeKeyCodeCtrlState
  • For Grey Key State Table: GreyKeyCodeCtrlState
  • For Shift Key State Table: ShiftKeyCodeCtrlState
  • For Control Key State Table: ControlKeyCodeCtrlState

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send key-code" and Advanced is "True"

Parm Name: BaseKeyCodeCtrlState,BlueKeyCodeCtrlState,OrangeKeyCodeCtrlState,GreyKeyCodeCtrlState,ShiftKeyCodeCtrlState,ControlKeyCodeCtrlState

Option Name Description Model Requires
0 Use existing state This value (or the absence of this parm from the XML) will cause the Control Key State Modifier to be left unchanged, thus making it the same as when the Key was pressed. N/A on TC20/TC25

MX: 4.4+

1 Force On This value will set the Control Key State Modifier, thus forcing the Key Code sent to be interpreted as Control. N/A on TC20/TC25

MX: 4.4+

2 Force Off This value will clear the Shift Key State Modifier, thus forcing the Key Code sent to be interpreted as non-Control. N/A on TC20/TC25

MX: 4.4+

Trigger

Used to specify which Triggers will be performed as the Key Behavior for the specified Key in various Key State Mapping Tables.

Note: Trigger 1 is commonly used by device data acquisition subsystems to initiate Barcode Scanning. There are currently no standard usages associated with Triggers 2-8. Consult the documentation for a specific device to determine which standard System applications, if any, can register for notifications from a given Trigger.

Parm names:

  • For Base Key State Table: BaseTrigger
  • For Blue Key State Table: BlueTrigger
  • For Orange Key State Table: OrangeTrigger
  • For Grey Key State Table: GreyTrigger
  • For Shift Key State Table: ShiftTrigger
  • For Control Key State Table: ControlTrigger

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior for the corresponding Key Table is "Send trigger"

Parm Name: BaseTrigger,BlueTrigger,OrangeTrigger,GreyTrigger,ShiftTrigger,ControlTrigger

Option Name Description Model Requires
10016 Trigger 1 Commonly used to initiate Barcode Scanning. This value indicates that the designated Trigger will be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10017 Trigger 2 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10018 Trigger 3 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10019 Trigger 4 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10020 Trigger 5 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10021 Trigger 6 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10022 Trigger 7 Causes the designated Trigger to be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

10023 Trigger 8 This value indicates that the designated Trigger will be sent as the Key Behavior for the specified Key in the specified Key Mapping Table. N/A on TC20/TC25

MX: 4.4+

Send Intent

These parms are used to specify the attributes of an Intent that will be sent as the Key Behavior for the specified Key in various Key State Mapping Tables.

Parm names:

  • For Base Key State Table: BaseSendIntent
  • For Blue Key State Table: BlueSendIntent
  • For Orange Key State Table: OrangeSendIntent
  • For Grey Key State Table: GreySendIntent
  • For Shift Key State Table: ShiftSendIntent
  • For Control Key State Table: ControlSendIntent

These parms are used to specify the conditions under which an Intent will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Parm Option Name Parm Value Description
On key down "1" Sends the specified Intent when the Key transitions from unpressed to pressed.
On key up "2" Sends the specified Intent when the Key transitions from pressed to unpressed.
On both key down and up "3" Sends the specified Intent both when the Key transitions from unpressed to pressed and from pressed to unpressed.

Intent type

Used to specify how the Intent should be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? Yes

Parm Option Name Parm Value Description
Start activity "1" Sends the Intent using Start Activity. This should be used when launching an Activity within an application (for example to present a UI).
Broadcast "2" Sends the Intent using Send Broadcast. This should be used when notifying one or more applications that register a suitable Broadcast Receiver, and that may invoke an Activity (for example to present a UI) or a Service (for example to perform a background process).

Action

Used to specify the Action Name attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The Action Name attribute of an Intent generally tells the receiver of the Intent what to do. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement of a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentAction
  • For Blue Key State Table: BlueIntentAction
  • For Orange Key State Table: OrangeIntentAction
  • For Grey Key State Table: GreyIntentAction
  • For Shift Key State Table: ShiftIntentAction
  • For Control Key State Table: ControlIntentAction

Parm value input rules:

  • String containing a valid Action Name for the Intent

Category

Used to specify the Category attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The Category attribute of an Intent generally tells the system what types of receivers to send the Intent to. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement of a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentCategory
  • For Blue Key State Table: BlueIntentCategory
  • For Orange Key State Table: OrangeIntentCategory
  • For Grey Key State Table: GreyIntentCategory
  • For Shift Key State Table: ShiftIntentCategory
  • For Control Key State Table: ControlIntentCategory

Parm value input rules:

  • String containing a valid category for the Intent

Package

Used to specify the Package Name attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The Package Name attribute of an Intent generally tells the system exactly which application to send the Intent to. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement of a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent" and the Intent Type is "Start activity"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentPackage
  • For Blue Key State Table: BlueIntentPackage
  • For Orange Key State Table: OrangeIntentPackage
  • For Grey Key State Table: GreyIntentPackage
  • For Shift Key State Table: ShiftIntentPackage
  • For Control Key State Table: ControlIntentPackage

Parm value input rules:

  • String containing a valid Package Name

Class

Used to specify the Class Name attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The Class Name attribute of an Intent generally tells the system exactly which class within an application to send the Intent to. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement of a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent" and the Intent Type is "Start activity"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentClass
  • For Blue Key State Table: BlueIntentClass
  • For Orange Key State Table: OrangeIntentClass
  • For Grey Key State Table: GreyIntentClass
  • For Shift Key State Table: ShiftIntentClass
  • For Control Key State Table: ControlIntentClass

Parm value input rules:

  • String containing a valid Class Name

Data URI

Used to specify the Data URI attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The Data URI attribute of an Intent generally provides a reference to the data (if any) that should be processed by the application to which the Intent is sent. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement of a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentUri
  • For Blue Key State Table: BlueIntentUri
  • For Orange Key State Table: OrangeIntentUri
  • For Grey Key State Table: GreyIntentUri
  • For Shift Key State Table: ShiftIntentUri
  • For Control Key State Table: ControlIntentUri

Parm value input rules:

  • String containing a valid URI value

MIME type

Used to specify the MIME Type attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. The MIME Type attribute of an Intent generally provides information about the type of data referenced by the Data URI attribute (if any) that helps qualify the action that should be taken by the application to which the Intent is sent. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent. The requirement for a value for this attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentMimeType
  • For Blue Key State Table: BlueIntentMimeType
  • For Orange Key State Table: OrangeIntentMimeType
  • For Grey Key State Table: GreyIntentMimeType
  • For Shift Key State Table: ShiftIntentMimeType
  • For Control Key State Table: ControlIntentMimeType

Parm value input rules:

  • String containing a valid MIME type value

Extra parameter name

Used to specify the Name of an Extra Data attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. An Extra Data attribute of an Intent generally provides auxiliary information that helps qualify the action that should be taken on the data by the application to which the Intent is sent. An Extra Data attribute must be specified using both an Extra Name and an Extra Value since both are required to add an Extra Data attribute to an Intent. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no Extra Data attribute to be set in the Intent. The requirement for an Extra Data attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentStringExtraName
  • For Blue Key State Table: BlueIntentStringExtraName
  • For Orange Key State Table: OrangeIntentStringExtraName
  • For Grey Key State Table: GreyIntentStringExtraName
  • For Shift Key State Table: ShiftIntentStringExtraName
  • For Control Key State Table: ControlIntentStringExtraName

Parm value input rules:

  • String containing a valid extra value name

Extra parameter value

Used to specify the Value of an Extra Data attribute for the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. An Extra Data attribute of an Intent generally provides auxiliary information that helps qualify the action that should be taken on the data by the application to which the Intent is sent. An Extra Data attribute must be specified using both an Extra Name and an Extra Value since both are required to add an Extra Data attribute to an Intent. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no Extra Data attribute to be set in the Intent. The requirement of an Extra Data attribute for a given Intent depends on the Intent being sent and the requirements of the application(s) to which the Intent may be sent.

Settable if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Pivotal parm? No

Parm names:

  • For Base Key State Table: BaseIntentStringExtraValue
  • For Blue Key State Table: BlueIntentStringExtraValue
  • For Orange Key State Table: OrangeIntentStringExtraValue
  • For Grey Key State Table: GreyIntentStringExtraValue
  • For Shift Key State Table: ShiftIntentStringExtraValue
  • For Control Key State Table: ControlIntentStringExtraValue

Parm value input rules:

  • String containing a valid extra value

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Parm Name: BaseSendIntent,BlueSendIntent,OrangeSendIntent,GreySendIntent,ShiftSendIntent,ControlSendIntent

Requires:

  • MX: 4.4+

Add Key Event

These parms control whether the key event should be added to the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table.

Parm names:

  • For Base Key State Table: BaseIntentAddKeyState
  • For Blue Key State Table: BlueIntentAddKeyState
  • For Orange Key State Table: OrangeIntentAddKeyState
  • For Grey Key State Table: GreyIntentAddKeyState
  • For Shift Key State Table: ShiftIntentAddKeyState
  • For Control Key State Table: ControlIntentAddKeyState

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Parm Name: BaseIntentAddKeyState,BlueIntentAddKeyState,OrangeIntentAddKeyState,GreyIntentAddKeyState,ShiftIntentAddKeyState,ControlIntentAddKeyState

Option Name Description Model Requires
0 true Causes Key Event that occurred when the Key was pressed or released to be attached to the Intent. This would generally be valuable only when an application was written specifically to receive such an Intent since it would require the application to understand and interpret the data format used to encode a Key Event. N/A on TC20/TC25

MX: 4.4+

2 false Prevents Key Event that occurred when the Key was pressed or released from being attached to the Intent. N/A on TC20/TC25

MX: 4.4+

Include Additional Flags

Used to specify the Intent Flags that should be included in the Intent that will be sent as the Key Behavior for the specified Key in the specified Key State Mapping Table. Intent Flags specify information about how an Intent should be processed by the Android system and/or by the application to which the Intent is sent. Specifying an empty (length of zero) value (or the absence of this parm from the XML) will cause no value for this attribute to be set in the Intent.

Parm names:

  • For Base Key State Table: BaseIntentIncludeFlags
  • For Blue Key State Table: BlueIntentIncludeFlags
  • For Orange Key State Table: OrangeIntentIncludeFlags
  • For Grey Key State Table: GreyIntentIncludeFlags
  • For Shift Key State Table: ShiftIntentIncludeFlags
  • For Control Key State Table: ControlIntentIncludeFlags

Parm value input rules:

  • String containing a valid flag
    • The list of valid flags would be the Constant Values
    • For example, the value for the FLAG_ACTIVITY_NEW_TASK flag would be "0x10000000"
    • Also, if more than one flag should be used, the flags will need to be OR'ed together. For example, if you want to use the FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_SINGLE_TOP flags, their values ("0x10000000" and "0x20000000") would be OR'ed together to produce the value "0x30000000" that would be used as the parm value.

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Send intent"

Parm Name: BaseIntentIncludeFlags,BlueIntentIncludeFlags,OrangeIntentIncludeFlags,GreyIntentIncludeFlags,ShiftIntentIncludeFlags,ControlIntentIncludeFlags

Requires:

  • MX: 4.4+

Application Launch

Used to specify the Application Name of the application whose main Activity should be launched as the Key Behavior for the specified Key in various Key State Mapping Tables. The Application Name of an application is separate from the Package Name, although the two could be set the same by the application developer. More commonly, the Application Name is a human readable name that may be displayed on the application title bar and on the App Info section of the System Settings Menu. Using the Application Name to launch an application is generally simpler and friendlier that using the Package Name and Class Name, as would be required when using a more general Intent to launch an application.

Parm names:

  • For Base Key State Table: BaseLaunchActivityName
  • For Blue Key State Table: BlueLaunchActivityName
  • For Orange Key State Table: OrangeLaunchActivityName
  • For Grey Key State Table: GreyLaunchActivityName
  • For Shift Key State Table: ShiftLaunchActivityName
  • For Control Key State Table: ControlLaunchActivityName

Parm value input rules:

  • String containing a valid Application Name

Shown if: The Action value is "Remap a key" and Choose a key to modify is not "None" and the Key Behavior is "Launch application"

Parm Name: BaseLaunchActivityName,BlueLaunchActivityName,OrangeLaunchActivityName,GreyLaunchActivityName,ShiftLaunchActivityName,ControlLaunchActivityName

Requires:

  • MX: 4.4+

Examples

Key Swap Example

The first feature of the following Request XML document is used to first reset the keys to their defaults. The following features are used to swap the 7 and 9 keys on the keyboard.

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4" >
        <parm name="Action" value="2"/>
    </characteristic>
    <characteristic type="KeyMappingMgr" version="4.4" >
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
            <parm name="KeyIdentifier" value="7"/>
            <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="16"/>
            </characteristic>
        </characteristic>
    </characteristic>
    <characteristic type="KeyMappingMgr" version="4.4" >
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
            <parm name="KeyIdentifier" value="9"/>
            <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="14"/>
            </characteristic>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <parm name="Action" value="2"/>
    </characteristic>
    <characteristic type="KeyMappingMgr" version="4.4">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
            <parm name="KeyIdentifier" value="7"/>
            <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="16"/>
            </characteristic>
        </characteristic>
    </characteristic>
    <characteristic type="KeyMappingMgr" version="4.4">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
            <parm name="KeyIdentifier" value="9"/>
            <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="14"/>
            </characteristic>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Reset Keys To Default

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4" >
        <parm name="Action" value="2"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <parm name="Action" value="2"/>
    </characteristic>
</wap-provisioningdoc>

Queries

Version Query

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <parm-query name="Version"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <parm name="Version" value="4.4.0"/>
    </characteristic>
</wap-provisioningdoc>

Query the Available Keys

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryAvailableKeys"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic type="QueryAvailableKeys">
            <parm name="KeyIdentifier" value="0"/>
            <parm name="KeyIdentifier" value="1"/>
            <parm name="KeyIdentifier" value="2"/>
            <parm name="KeyIdentifier" value="3"/>
            <parm name="KeyIdentifier" value="4"/>
            <parm name="KeyIdentifier" value="5"/>
            <parm name="KeyIdentifier" value="6"/>
            <parm name="KeyIdentifier" value="7"/>
            <parm name="KeyIdentifier" value="8"/>
            <parm name="KeyIdentifier" value="9"/>
            <parm name="KeyIdentifier" value="A"/>
            <parm name="KeyIdentifier" value="B"/>
            <parm name="KeyIdentifier" value="C"/>
            <parm name="KeyIdentifier" value="D"/>
            <parm name="KeyIdentifier" value="E"/>
            <parm name="KeyIdentifier" value="F"/>
            <parm name="KeyIdentifier" value="G"/>
            <parm name="KeyIdentifier" value="H"/>
            <parm name="KeyIdentifier" value="I"/>
            <parm name="KeyIdentifier" value="J"/>
            <parm name="KeyIdentifier" value="K"/>
            <parm name="KeyIdentifier" value="L"/>
            <parm name="KeyIdentifier" value="M"/>
            <parm name="KeyIdentifier" value="N"/>
            <parm name="KeyIdentifier" value="O"/>
            <parm name="KeyIdentifier" value="P"/>
            <parm name="KeyIdentifier" value="Q"/>
            <parm name="KeyIdentifier" value="R"/>
            <parm name="KeyIdentifier" value="S"/>
            <parm name="KeyIdentifier" value="T"/>
            <parm name="KeyIdentifier" value="U"/>
            <parm name="KeyIdentifier" value="V"/>
            <parm name="KeyIdentifier" value="W"/>
            <parm name="KeyIdentifier" value="X"/>
            <parm name="KeyIdentifier" value="Y"/>
            <parm name="KeyIdentifier" value="Z"/>
            <parm name="KeyIdentifier" value="UP"/>
            <parm name="KeyIdentifier" value="DOT"/>
            <parm name="KeyIdentifier" value="ESC"/>
            <parm name="KeyIdentifier" value="RED"/>
            <parm name="KeyIdentifier" value="BLUE"/>
            <parm name="KeyIdentifier" value="CTRL"/>
            <parm name="KeyIdentifier" value="DOWN"/>
            <parm name="KeyIdentifier" value="LEFT"/>
            <parm name="KeyIdentifier" value="SCAN"/>
            <parm name="KeyIdentifier" value="STAR"/>
            <parm name="KeyIdentifier" value="ENTER"/>
            <parm name="KeyIdentifier" value="GREEN"/>
            <parm name="KeyIdentifier" value="RIGHT"/>
            <parm name="KeyIdentifier" value="SHIFT"/>
            <parm name="KeyIdentifier" value="SPACE"/>
            <parm name="KeyIdentifier" value="GRIP_TRIGGER"/>
            <parm name="KeyIdentifier" value="BACKSPACE"/>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Query the Available Tables

Input


<wap-provisioningdoc>
<characteristic type="KeyMappingMgr">
    <characteristic-query type="QueryAvailableTables"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic type="QueryAvailableTables">
            <parm name="TableIdentifier" value="blue"/>
            <parm name="TableIdentifier" value="base"/>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Query the Default Key Identifier

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryDefaultKeyMapping">
            <parm name="QueryDefaultKeyIdentifier" value="0"/>
        </characteristic-query>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic type="QueryDefaultKeyMapping">
            <characteristic type="KeyMappingMgr">
                <parm name="Action" value="1"/>
                <characteristic type="KeyMapping">
                    <parm name="KeyIdentifier" value="0"/>
                    <characteristic type="BlueTable">
                        <parm name="BlueBehavior" value="2"/>
                        <parm name="BlueKeyCode" value="140"/>
                    </characteristic>
                    <characteristic type="BaseTable">
                        <parm name="BaseBehavior" value="2"/>
                        <parm name="BaseKeyCode" value="7"/>
                    </characteristic>
                </characteristic>
            </characteristic>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Query the Changed Key Identifier

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryChangedKeyMapping">
            <parm name="QueryChangedKeyIdentifier" value="0"/>
        </characteristic-query>
    </characteristic>
</wap-provisioningdoc>

Error Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic-error type="QueryChangedKeyMapping" desc="No key mappings available"/>
    </characteristic>
</wap-provisioningdoc>

Query the Current Key Identifier

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryCurrentKeyMapping">
            <parm name="QueryCurrentKeyIdentifier" value="0"/>
        </characteristic-query>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic type="QueryCurrentKeyMapping">
            <characteristic type="KeyMappingMgr">
                <parm name="Action" value="1"/>
                <characteristic type="KeyMapping">
                    <parm name="KeyIdentifier" value="0"/>
                    <characteristic type="BlueTable">
                        <parm name="BlueBehavior" value="2"/>
                        <parm name="BlueKeyCode" value="140"/>
                    </characteristic>
                    <characteristic type="BaseTable">
                        <parm name="BaseBehavior" value="2"/>
                        <parm name="BaseKeyCode" value="7"/>
                    </characteristic>
                </characteristic>
            </characteristic>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Query the Default Key Mappings

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryDefaultKeyMappings"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic type="QueryDefaultKeyMappings">
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="0"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="140"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="7"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="1"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="131"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="8"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="2"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="132"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="9"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="3"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="133"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="10"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="4"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="134"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="11"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="5"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="135"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="12"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="6"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="136"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="13"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="7"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="137"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="14"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="8"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="138"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="15"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="9"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="139"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="16"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="A"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="55"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="29"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="B"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="56"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="30"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="C"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="75"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="31"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="D"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="221"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="32"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="E"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="71"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="33"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="F"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="72"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="34"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="G"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="73"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="35"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="H"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="24"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="36"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="I"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="220"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="37"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="J"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="68"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="38"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="K"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="39"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="L"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="76"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="40"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="M"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="25"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="41"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="N"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="69"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="42"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="O"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="43"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="P"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="44"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="Q"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="45"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="R"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="74"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="46"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="S"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="157"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="47"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="T"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="156"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="48"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="U"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="155"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="49"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="V"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="154"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="50"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="W"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="161"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="51"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="X"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="10025"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="52"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="Y"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="53"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="Z"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="10024"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="54"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="UP"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="19"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="DOT"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="56"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="ESC"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="111"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="RED"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="104"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="BLUE"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="10027"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="CTRL"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="10030"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="10031"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="DOWN"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="20"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="LEFT"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="21"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="SCAN"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="103"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="STAR"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="141"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="17"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="ENTER"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="66"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="GREEN"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="102"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="RIGHT"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="22"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="SHIFT"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="10032"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="SPACE"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="2"/>
                <parm name="BlueKeyCode" value="61"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="62"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="GRIP_TRIGGER"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="103"/>
              </characteristic>
            </characteristic>
          </characteristic>
          <characteristic type="KeyMappingMgr">
            <parm name="Action" value="1"/>
            <characteristic type="KeyMapping">
              <parm name="KeyIdentifier" value="BACKSPACE"/>
              <characteristic type="BlueTable">
                <parm name="BlueBehavior" value="6"/>
              </characteristic>
              <characteristic type="BaseTable">
                <parm name="BaseBehavior" value="2"/>
                <parm name="BaseKeyCode" value="67"/>
              </characteristic>
            </characteristic>
          </characteristic>
        </characteristic>
      </characteristic>
    </wap-provisioningdoc>

Query Changed Key Mappings

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryChangedKeyMappings"/>
    </characteristic>
</wap-provisioningdoc>

Error Output


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr" version="4.4">
        <characteristic-error type="QueryChangedKeyMappings" desc="No key mappings available"/>
    </characteristic>
</wap-provisioningdoc>

Query Current Key Mappings

Input


<wap-provisioningdoc>
    <characteristic type="KeyMappingMgr">
        <characteristic-query type="QueryCurrentKeyMappings"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
  <characteristic type="KeyMappingMgr" version="4.4">
    <characteristic type="QueryDefaultKeyMappings">
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="0"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="140"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="7"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="1"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="131"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="8"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="2"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="132"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="9"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="3"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="133"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="10"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="4"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="134"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="11"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="5"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="135"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="12"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="6"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="136"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="13"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="7"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="137"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="14"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="8"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="138"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="15"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="9"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="139"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="16"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="A"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="55"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="29"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="B"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="56"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="30"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="C"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="75"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="31"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="D"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="221"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="32"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="E"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="71"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="33"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="F"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="72"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="34"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="G"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="73"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="35"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="H"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="24"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="36"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="I"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="220"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="37"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="J"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="68"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="38"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="K"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="39"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="L"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="76"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="40"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="M"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="25"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="41"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="N"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="69"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="42"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="O"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="43"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="P"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="44"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="Q"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="45"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="R"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="74"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="46"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="S"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="157"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="47"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="T"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="156"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="48"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="U"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="155"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="49"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="V"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="154"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="50"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="W"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="161"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="51"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="X"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="10025"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="52"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="Y"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="53"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="Z"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="10024"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="54"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="UP"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="19"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="DOT"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="56"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="ESC"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="111"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="RED"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="104"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="BLUE"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="10027"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="CTRL"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="10030"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="10031"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="DOWN"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="20"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="LEFT"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="21"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="SCAN"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="103"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="STAR"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="141"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="17"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="ENTER"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="66"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="GREEN"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="102"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="RIGHT"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="22"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="SHIFT"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="10032"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="SPACE"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="2"/>
            <parm name="BlueKeyCode" value="61"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="62"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="GRIP_TRIGGER"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="103"/>
          </characteristic>
        </characteristic>
      </characteristic>
      <characteristic type="KeyMappingMgr">
        <parm name="Action" value="1"/>
        <characteristic type="KeyMapping">
          <parm name="KeyIdentifier" value="BACKSPACE"/>
          <characteristic type="BlueTable">
            <parm name="BlueBehavior" value="6"/>
          </characteristic>
          <characteristic type="BaseTable">
            <parm name="BaseBehavior" value="2"/>
            <parm name="BaseKeyCode" value="67"/>
          </characteristic>
        </characteristic>
      </characteristic>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>