102

I'm not sure what changed but the physical keyboard from my computer no longer works for the emulator (running kitkat in Nexus 5, x86). When i look in AVD at the device's advanced settings, there's nothing for a hardware keyboard. Where is this setting?

Don Rhummy
  • 24,730
  • 42
  • 175
  • 330

5 Answers5

158

In the advanced settings of a virtual device in Android Studio 1.0.2 AVD Manager, there is actually a checkbox that allows to enable keyboard input without editing the config.ini by hand.

Tools → Android → AVD Manager → pencil icon (shown in picture) → Show Advanced Settings (scroll to bottom) → Enable Keyboard Input

enter image description here

Wim Coenen
  • 66,094
  • 13
  • 157
  • 251
carine
  • 1,581
  • 2
  • 8
  • 3
  • 22
    Note, you have to *scroll down to the bottom* of the Advanced Settings. "Enabled keyboard input" is the LAST ITEM. It took me several minutes to realize the advanced settings pane was much larger than it first appeared. – Nuthatch Mar 31 '15 at 17:55
  • 4
    For me, it's enabled and still I can't type inside SOME `EditText` fields. – Saeed Neamati May 13 '17 at 06:00
  • IMPORTANT : Scroll to Bottom :) – matt Jan 16 '18 at 15:05
87

Find the emulator's configuration in your home directory:

//Located in:
~/.android/avd/<The_Device_Name>/config.ini

For example, on the Nexus 5 (created by Android Studio), it was:

~/.android/avd/Nexus5.avd/config.ini

Change the below setting to be:

hw.keyboard=yes
Don Rhummy
  • 24,730
  • 42
  • 175
  • 330
  • 1
    Related: [D'pad Is disabled in emulator](http://stackoverflow.com/questions/14561251/dpad-is-disabled-in-emulator). Modified as `hw.dPad=yes` to test accessibility feature with up, down, left , right arrow keys. – Ivan Chau Oct 25 '15 at 03:33
  • 2
    Can this be set via `adb shell` or `adbmanager` command line? – Peter Jun 19 '20 at 04:51
  • Also needed to restart the emulator afterward for the setting to be picked up. Anyone know if there's a way to use the new config without restarting emulator? – Freewalker Sep 21 '20 at 14:41
61

Open and Navigate to Tools → Android → AVD Manager → Edit -> pencil icon)

enter image description here

Click on Show Advanced settings and scroll down and you can see the option Enable Keyboard input (example second image) Check that box and Click on Finish.

enter image description here

Ananta Prasad
  • 3,655
  • 3
  • 23
  • 35
Parvathy Nair
  • 951
  • 7
  • 10
7

UPDATE:

Change hw.keyboard = yes.

And make the file config.ini Read-only:

1.Right-click on the file open its settings.

2.Make every options on the permissions tab into Read-only(refer screenshot)

enter image description here

Trust me this will work it happens because this file gets rewritten,when we lock it out the bug disappears.

Amal p
  • 2,882
  • 4
  • 29
  • 49
0

Quick script to do it automatically. Make sure to rename the emulator name part:

sed -i '' "s/hw.keyboard = no/hw.keyboard = yes/" $ANDROID_HOME/avd/[EMULATOR_NAME]/config.ini
Edgar Froes
  • 768
  • 8
  • 20