клавиатура: подавить системный IME на очках + ввод текста через Accessibility
This commit is contained in:
+9
-4
@@ -128,11 +128,16 @@ class ShizukuProvisioner(
|
||||
Log.w(TAG, "не удалось узнать UID $GLASSES_PACKAGE — PROJECT_MEDIA per-UID не выставлен")
|
||||
Result.failure(IllegalStateException("uid not found"))
|
||||
}
|
||||
// #4.1: назначаем наш VmNoopImeService дефолтным IME навсегда (см. [VmNoopImeService]).
|
||||
// Подавляет системный IME, который гость (Zona) поднимает при фокусе в поле ввода.
|
||||
// #4.1: глушим системную клавиатуру гостя. Наш VmNoopImeService дефолтом стать
|
||||
// не может — вендорский ROM жёстко держит LatinIME (allowlist; даже системный
|
||||
// Sogou откатывается). Поэтому просто отключаем LatinIME: на очках не поднимается
|
||||
// ни один IME, а текст с телефона доставляется через AccessibilityService
|
||||
// (ACTION_SET_TEXT, см. VmAccessibilityService). На «обычных» ROM сработает и
|
||||
// первый способ — назначение нашего IME.
|
||||
val ime = adb.shell(
|
||||
"settings put secure default_input_method " +
|
||||
"$GLASSES_PACKAGE/.VmNoopImeService",
|
||||
"ime enable $GLASSES_PACKAGE/.VmNoopImeService; " +
|
||||
"ime set $GLASSES_PACKAGE/.VmNoopImeService; " +
|
||||
"pm disable-user --user 0 com.android.inputmethod.latin",
|
||||
timeoutMs = 15_000,
|
||||
)
|
||||
Log.i(
|
||||
|
||||
@@ -233,7 +233,6 @@ fun RemoteScreen(
|
||||
scope.launch { controller.sendText(text) }
|
||||
showKeyboard = false
|
||||
},
|
||||
onBackspace = { scope.launch { controller.sendKey(KEYCODE_DEL) } },
|
||||
onEnter = { scope.launch { controller.sendKey(KEYCODE_ENTER) } },
|
||||
)
|
||||
}
|
||||
|
||||
@@ -131,7 +131,6 @@ fun ZonaProfile(
|
||||
scope.launch { controller.sendText(text) }
|
||||
showKeyboard = false
|
||||
},
|
||||
onBackspace = { scope.launch { controller.send(VmKeyEvent(keyCode = 67, action = 1)) } },
|
||||
onEnter = { scope.launch { controller.send(VmKeyEvent(keyCode = 66, action = 1)) } },
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user