mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 08:25:32 +00:00
68 lines
2 KiB
Markdown
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
|
|
}
|
|
```
|