This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

HID Keyboard - Android soft keyboard does not shows up

Environment :

  • Custom Board with MCU NordicSemi nRF51822-QFAA

  • Softdevice S110 7.1

  • IAR for ARM 7.1

  • SDK 7.2 using HID keyboard example + testing with Galaxy Note 3 (Android 4.4.2)

/***************************************************************************************/

I am not sure about the term "soft keyboard" is mentioning this keyboard shown on the next

picture (the yellow arrow is pointing it),

anyways the word soft keyboard I'm saying is this keyboard.

(Whereas, the iOS devices' keyboard is called virtual keyboard.)

image description

Before connecting the HID peripheral, the soft keyboard appears.

However, after connecting the peripheral, the soft keyboard does not appear.

image description

(The string hello was typed by pressing the board's button.)

/***************************************************************************************/

So I asked the Samsung Service Center to receive help.

The center told me to go to "Settings -> Controls -> Language and input ->

Default (at Keyboards and input methods)" and activate "Use on-screen keyboard".

Saying that, this menu shows up when the user connects Bluetooth keyboards.

image description

For example, I have Microsoft Wedge Mobile Keyboard. When I connect this keyboard

to my Galaxy Note 3, the setting menu above does appear.

image description

image description

image description

(The MS Keyboard is using Bluetooth 3.0 so maybe comparing

with this and the HID peripheral could be absurd.)

/***************************************************************************************/

Now back to the HID peripheral, that setting does not shows up.

image description

image description

When I go there, I cannot activate it.

image description

(Thus, the activating button should have appeared according from the service center,

however, it did not. Also, when the phone is not using Bluetooth, in this state, the activating

button does not appear either.)

/***************************************************************************************/

So, my question is,

  • What do I have to do to pop up the soft keyboard

when I use the HID service in Android environment?

  • Does the same phenomenon occurs when using other Android phones?

/*

P.S. : I added a consumer report to send AL Keyboard Layout key.

When I send this key to the iOS devices, the hidden virtual keyboard reappeared.

(Ref. Question from Stackoverflow )

However, this doesn't work at Android devices.

Plus, I did not changed the device appearance.

I setted as keyboard but as you see in the screenshot, it wasn't discovered as a keyboard

regardless I added Consumer report or not.

static void gap_params_init(void){

    uint32_t                err_code;
    ble_gap_conn_params_t   gap_conn_params;
    ble_gap_conn_sec_mode_t sec_mode;

    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);

    err_code = sd_ble_gap_device_name_set(&sec_mode,
                                          (const uint8_t *)DEVICE_NAME,
                                          strlen(DEVICE_NAME));
    APP_ERROR_CHECK(err_code);

    err_code = sd_ble_gap_appearance_set(BLE_APPEARANCE_HID_KEYBOARD);
    APP_ERROR_CHECK(err_code);

    memset(&gap_conn_params, 0, sizeof(gap_conn_params));

    gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL;
    gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL;
    gap_conn_params.slave_latency     = SLAVE_LATENCY;
    gap_conn_params.conn_sup_timeout  = CONN_SUP_TIMEOUT;

    err_code = sd_ble_gap_ppcp_set(&gap_conn_params);
    APP_ERROR_CHECK(err_code);
}

*/

-Regards, Mango922

Related