Мой эмулятор Android 2.3.3 имеет четыре разных клавиатуры:
Я снимаю все флажки, чтобы использовать аппаратную клавиатуру. Через несколько секунд выдает сообщение об ошибке о том, что процесс com.android.inputmethod.latin
не отвечает, с Force Closeкнопкой. Более того, я закрываю и перезапускаю свой эмулятор, чтобы найти все проверенные клавиатуры!
Причина, по которой я хочу, чтобы все не было проверено, заключается в следующем:
Когда я нажимаю курсором на место, куда я хочу вставить текст (по крайней мере, в WhatsApp, я сталкиваюсь с этой проблемой), курсор остается там от 3 до 10 секунд (!!), а затем на экране появляется клавиатура и курсор возвращается туда, где был! Это не тот случай, когда все экранные клавиатуры отключены.
Как сделать параметр отключения клавиатуры постоянным?
ОБНОВЛЕНИЕ: Это было за гранью моего воображения и очень раздражало. Методы ввода, отличные от программной клавиатуры, вернулись и даже стали доступны после перезагрузки эмулятора! Почему sdk просто отказывается сохранять настройки??
ВЫПОЛНЕНО: я сделал резервную копию всего содержимого моего старого эмулятора, создал новый эмулятор, используя
android create avd -t <TargetID> -n <EmulatorName> -a --abi <CPU/ABI-Used>
Чтобы помочь узнать правильное значение <TargetID>
и допустимые значения, <CPU/ABI-Used>
соответствующие тому же, что и в соответствии с вашим выбором уровня API, я использовал
android list targets
Затем вы обнаружите, что доступна опция Snapshot, когда вы редактируете тот же AVD из диспетчера виртуальных устройств Android. Так что проверяйте снимок. И когда вы запускаете, убедитесь, что вы отметили параметры «Запустить из снимка» и «Сохранить в снимок». Теперь используйте rm
команды adb shell
для удаления IME. (Я скоро объясню, как это делается) Вы закрываете и в следующий раз открываете его с помощью emulator
команды, он загружается из моментального снимка, и достигается постоянство настроек IME (или, если уж на то пошло, любых системных настроек)!
(PS: Только когда вы измените конфигурацию оборудования, вам нужно будет перезагрузиться, и в этом случае вы не сможете запустить из моментального снимка, поскольку он был сохранен для другой конфигурации оборудования!)
Как видно из вопроса, все, что я хочу, это чтобы моя аппаратная клавиатура была активной, и меня действительно не волнуют 4 метода ввода. Мне никогда не приходило в голову, что я могу просто удалить все IME: Вот как:
Смонтируйте /system
папку. Получите имена apk IME, зайдя /system/app
и отобразив его содержимое:
aneesh@nb-14:~$ adb shell mount -rw -o remount /dev/block/mtdblock0 /system
aneesh@nb-14:~$ adb shell
# cd /system/app
# ls
Phone.apk
Development.apk
Email.apk
Calculator.apk
...
..
etc.
Дальше просто делай
rm <IMEapkname>.apk
Например, в случае японского IME выполняется
rm /system/app/PinyinIME.apk
Поскольку этот трюк для меня пока не сработал для образца мягкой клавиатуры:
Я вышел из оболочки adb и сделал:
adb uninstall com.example.android.softkeyboard
ОБНОВЛЕНИЕ: Как только вы убедитесь, что снимок сохранен правильно (попробуйте запустить из снимка через терминал/диспетчер AVD, это не должно вызывать ошибок) и не хотите вносить дальнейшие изменения в системные приложения или конфигурации оборудования, запустите эмулятор с помощью вариант -no-snapshot-save
:
emulator -no-snapshot-save -avd Andreud
чтобы вы могли запускаться из моментального снимка, как и раньше, и избегать аберраций, возникающих при сохранении в моментальный снимок (чтобы не возникла ошибка, говорящая, что он был сохранен для другой аппаратной конфигурации). Кроме того, вы можете сэкономить несколько драгоценных секунд, необходимых для сохранения моментального снимка. Таким образом, ваш общий опыт работы с эмулятором Android улучшится!