<How to create your own dictionary plugged in B16x2 Keyboard>
Any third party developers, to provide words list and spelling check, can create their own dictionaries plugged in B16x2 Keyboard as below. The dictionary you create is a completely separate app you distribute for fee or for free in your possession.

Following description is based on the developing environment of Eclipse with the ADT Plugin.

1. The entire project and Manifest file

"b16kb.chinese" is the internal name of the dictionary and displayed in selecting a dictionary at B16x2 Keyboard. You should replace it with the name of your dictionary. The other part of each long name must not be changed. Also, you must keep rectangle as it is in Manifest file. (A hanja dictionary must additionally include 'hnj' tag like 'com.bestcashbook.an.plugin.hnj.b16hanja' and the others must not include '.hnj.' in the name.

2. IDctService.aidl

"com.bestcashbook.plugin" and "IDctService.aidl" inside it must be kept as they are. You must not make any change of them.

3. The skeleton of DctService.java

"DctService.java" is your main coding file. You must keep the name as it is.
4. CandidateList - return the list of words
B16x2 Keyboard, whenever there is keyboard input or text change, calls "CandidateList". CandidateList returns a list of words. This is the core part. Any others exist for this. Here, you can freely deploy your own ideas. What to return with the parameters delivered is entirely up to you.

5. addUsDb(String cr, String bf, int mo, int md)
Whenever users commit text, B16x2 Keyboard sends this function.
6. delUsDb(String com, String sel)
When users delete a word by long press a word of list, B16x2 Keyboard sends this function. com: currently composing text, sel: selected word from list. return 0 if failed in deleting, otherwise return 1.

7. How to show yourself on the keyboard

In addition to displaying candidate words, you can show yourself on the keyboard.
  1. You can display your company or your product on 3rd menu key if blank. If your logo letter is not "", you need to return validate data from 3rd to 6th. Otherwise it causes an error.
  2. You can configure and send your own arrangements of letters, numbers and symbols. Of course, the intellectual properties, if any, of your arrangements entirely belong to you.
We also have the plan to reflect your image background in the future.

8 sendKeys(String keys);

When a user type at first, B16x2 Keyboard sends this function. With this you can know keys arrangement currently used.

9. Tip for Debugging - Good luck -