Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

Other versions
Version 18.0Version 17.0 (current version)Version 16.0Version 15.0Version 14.0Version 13.0Version 12.0Version 11.0Version 10.0Version 2.0

On this page

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
    }