Working with @Zebra technologies' developer community. Former contributor to @rhomobile
Published Jan 03, 2020
Enterprise Keyboard (EKB) and the recently released Enterprise Keyboard Designer (EKD) can be used together to create custom keyboards for specific Enterprise use cases such as Function key input or custom symbol key input without making the user navigate around a myriad of symbol screens. You design your custom layout(s) with the Enterprise Keyboard Designer which are then rendered by the Enterprise Keyboard, a replacement keyboard you use instead of Gboard. Some sample layouts are shown below and a lot more detail is given on the techdocs pages for both EKB and the designer.

As stated in Techdocs, EKB is not intended as a general-purpose replacement keyboard and should only be used when a custom keyboard layout or layouts are required.
Having designed your layout(s) in the designer tool you want to be able to use these layout(s) within your application. There are some pre-requisites before doing so:
Having all those prerequisites in place you should see the “Configure Enterprise Keyboard settings” available in DataWedge 7.4.44. If you do not have this option or the option is greyed out, then you are missing one or more of the prerequisite steps.

The Enterprise Keyboard offers an Intent-based API and is thoroughly documented on techdocs.
APIs are available as follows:
For example, the code to set a particular layout within a defined group looks as follows:
Intent intent = new Intent();
intent.setAction(com.symbol.ekb.api.ACTION_UPDATE);
intent.setPackage(com.symbol.mxmf.csp.enterprisekeyboard);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.putExtra("CURRENT_LAYOUT_GROUP", GROUP_NAME);
intent.putExtra("CURRENT_LAYOUT_NAME", LAYOUT_NAME);
PendingIntent piResponse = PendingIntent.getActivity(getApplicationContext(), 1,
new Intent(this, MainActivity.class), PendingIntent.FLAG_ONE_SHOT);
intent.putExtra("CALLBACK_RESPONSE", piResponse);
sendBroadcast(intent);
The response to this call will be sent to the calling activity via startActivity() since PendingIntent.getActivity was used; a developer could equally choose to receive the response as a broadcast or a startService.
I have put together a sample application that demonstrates the EKB API which is available from my GitHub: https://github.com/darryncampbell/Enterprise_Keyboard_Exerciser
Before using the demo application, you must deploy the provided Test001.encrypted file to /enterprise/device/settings/ekb/config/ which is easily achieved via adb:
adb push Test001.encrypted /enterprise/device/settings/ekb/config/Test001.encrypted
Test001.encrypted contains a set of 5 pre-defined layouts quickly knocked together for demo purposes only. After deployment, provided you are running DataWedge 7.4.44 or higher you should see something like the below in the Enterprise Keyboard Layout configuration

With all prerequisites in place you can now run the demo application. You can use the buttons on the first activity to exercise the different APIs and you should see something like the following screenshots (obtained from a TC57):





You can also see a 1-minute video of the demo application exercising the EKB API at https://youtu.be/aDheQTz9gU0
Modifying your application to make use of the EKB API may not be an option for you but you can still take advantage of custom EKB layouts through DataWedge profiles.
This works as follows:
The same demo application described previously, when first launched, will automatically create a new DataWedge profile called “EKB_Exerciser” and associate that DW profile with the second activity in the demo app, “SecondActivity”.
The button at the bottom of the main UI labelled “EKB Via DataWedge Demo” will launch this second activity and you will immediately see a new custom layout file is shown, this is the custom layout selected by the “EKB_Exerciser” profile.

The two buttons will invoke the DataWedge SET_CONFIG API to switch between this layout and an additional custom layout file although you will need to exit and relaunch the activity for the change to have an effect:

You can also see a 30 second video of the demo application showing the DataWedge capabilities at https://youtu.be/Y7BSHywJ6Gw
The Enterprise Keyboard Designer and custom layouts are brand new tools and capabilities and the team are continuing to add new features with each release. Hopefully this post has given an introduction to these new capabilities but be on the look out for additional enhancements in the future.