spiegel-keyman/android/docs/engine/KMManager/getKeyboardState.md
2024-10-31 10:08:17 +07:00

68 lines
2 KiB
Markdown

---
title: KMManager.getKeyboardState()
---
## Summary
The **`getKeyboardState()`** method returns the specified keyboard's
state.
## Syntax
``` javascript
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)`](showLanguageList)) without failure
to access Keyman server to be certain.
## Examples
### Example: Using `getKeyboardState()`
The following script illustrate the use of `getKeyboardState()`:
``` javascript
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
}
```