Оболочка ADB: изменение метода IME дает ошибку «Неизвестный идентификатор: ноль»

Я купил китайские смарт-часы с Android 4.2.2 и обнаружил, что в них нет виртуальной клавиатуры. В настройках также нет опции «ввод» (есть только «язык»).

Я установил стороннюю клавиатуру (Anysoftkeyboard) и другое приложение под названием Quick Keyboard Switch, которое может менять клавиатуру с помощью настроек.

Когда я запускаю Quick Keyboard Switch и пытаюсь включить загруженную клавиатуру, приложение принудительно закрывается.

Я нашел еще один пост здесь, описывающий, как использовать оболочку ADB для включения и установки клавиатуры по умолчанию:

как изменить метод ввода с помощью команды ime

В инструкции из приведенного выше сообщения описывается, как включить клавиатуру с помощью команды «ime enable com.etc.etc» перед установкой клавиатуры по умолчанию с помощью «ime set com.etc.etc».

К сожалению, когда я использую команду «ime enable» в оболочке ADB (применяется su, часы рутированы), появляется сообщение об ошибке:

Ошибка: неизвестный идентификатор: ноль

Когда я использую команду «ime set», она возвращает аналогичное сообщение об ошибке («com.etc.etc» (название клавиатуры) вместо «null») — я так понимаю, это потому, что я еще не включил клавиатуру.

Меня беспокоит, что я даже не вижу опцию «клавиатура» в настройках — означает ли это, что модуль ввода был удален производителем прошивки этих умных часов?

Если да, то где я должен искать в прошивке Android (я думаю, где-то внутри / system), что я могу скопировать и вставить, чтобы восстановить функцию ввода с клавиатуры?

Я НЕ разработчик и не компьютерный инженер. Я гуглю и пытаюсь найти решения своих проблем. Спасибо за вашу помощь и терпение.

Ответы (1)

Похоже, ваше подозрение верно, и производитель убрал этот функционал из прошивки. Боюсь, это не так просто, как копирование и вставка некоторых файлов: вам нужно будет получить исходный код прошивки, изменить его и перекомпилировать, чтобы добавить функциональность, и, вероятно, вам нужно будет преодолеть все проблемы, которые создали поставщик отключил его в первую очередь (например, клавиатура не предназначена для таких маленьких экранов).

Спасибо за быстрый ответ. Я думаю, что это далеко за пределами моей способности решить проблему. Некоторые умные часы поставляются с виртуальными клавиатурами, и я установил и использовал клавиатуры (например, Anysoft, Flit) на умных часах, например. SmartQ ZWatch. Я предполагаю, что производитель этих конкретных часов решает, что подойдет либо клавиатура BT, либо клавиатура телефона (используя часы в качестве компаньона телефона).
Уважаемый Дэн, я нашел Settings.apk в /system/app. Это apk, который управляет меню «Настройки», которое должно было включать «Язык и ввод»? Я знаю, что есть apktool, который может декомпилировать / компилировать apks, но я не знаю, как сделать ремонт, чтобы восстановить доступ к вводу с экранной клавиатуры.
У меня есть логарифм, когда приложение для переключения kyeboard принудительно закрывается: «произошло необработанное исключение W/System.err(16742): java.lang.RuntimeException: невозможно запустить активность ComponentInfo{com.android.settings/com.android.settings.Settings $InputMethodAndLanguageSettingsActivity}: android.app.Fragment$InstantiationException: невозможно создать экземпляр фрагмента com.android.settings.inputmethod.InputMethodAndLanguageSettings: убедитесь, что имя класса существует, является общедоступным и имеет пустой общедоступный конструктор W/System.err(16742 )'