KMManager.getKeyboardState()
Summary
The getKeyboardState()
method returns the specified keyboard's state.
Syntax
KMManager.getKeyboardState(Context context, String keyboardID, String languageID)
Parameters
context
- The context.
keyboardID
- ID of the keyboard.
languageID
- ID of the associated language.
Returns
Returns the state of the specified keyboard as one of KEYBOARD_STATE_UNDEFINED
, KEYBOARD_STATE_NEEDS_DOWNLOAD
, KEYBOARD_STATE_NEEDS_UPDATE
or KEYBOARD_STATE_UP_TO_DATE
.
Description
Use this method to get the state of the specified keyboard. It returns KEYBOARD_STATE_UNDEFINED
if keyboardID or languageID is not specified (null
or empty string). It returns KEYBOARD_STATE_NEEDS_DOWNLOAD
if the specified keyboard does not exist in assets/languages/
folder. In all other cases it returns either KEYBOARD_STATE_UP_TO_DATE
or KEYBOARD_STATE_NEEDS_UPDATE
. Note: Only keyboards provided by Keyman may return KEYBOARD_STATE_NEEDS_UPDATE
. If you have a custom keyboard, you need to implement your own method to check whether or not it needs update. KEYBOARD_STATE_UP_TO_DATE
does not necessarily mean that the keyboard is in fact up to date, you need to make sure language list has recently been displayed (see showLanguageList()
) without failure to access Keyman server to be certain.
Examples
Example: Using getKeyboardState()
The following script illustrate the use of getKeyboardState()
:
KeyboardState keyboardState = KMManager.getKeyboardState(this, "tamil99m", "tam");
switch (keyboardState) {
case KEYBOARD_STATE_NEEDS_DOWNLOAD:
// We need to download this keyboard or manually add it into assets/languages/ folder.
break;
case KEYBOARD_STATE_UP_TO_DATE:
case KEYBOARD_STATE_NEEDS_UPDATE:
// We can safely use this keyboard since it exists in assets/languages/ folder.
break;
default:
// Undefined state
}