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() (Deprecated)
) 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", "ta");
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
}