Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Android: open leaves the real keyboard active when the test IME helper disappears while the daemon is alive

Geschlossen Anfängerfreundlich
#3,407 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
74/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
android, typescript
Bereich
mobile, testing

Rechercherichtung

Lies zunächst dist/src/ime-state.js, insbesondere ensureHelperInstalled und dessen Cache auf Modulebene; verfolge, wo open die Funktion aufruft, und prüfe die zugehörigen Tests. Reproduziere den Fehler, indem du eine Android-App öffnest, den Test-IME-Helfer deinstallierst, während der Daemon weiterläuft, und sie dann erneut öffnest. Fertig ist die Änderung, wenn das Fehlen des Helfers erneut geprüft und er neu installiert wird oder open eine Warnung ausgibt oder fehlschlägt, statt Erfolg zu melden, während die echte Tastatur aktiv ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Summary

On Android, the daemon remembers per device that the test IME helper (com.callstack.agentdevice.imehelper) is installed, and never re-checks it during its lifetime. If the helper disappears from the device while the daemon is still alive, the next open leaves the real keyboard active and reports success, with no warning.

Reproduction

agent-device 0.21.24, Android emulator API 32, single daemon started by the first command.

npx agent-device open com.android.settings --platform android
adb shell settings get secure default_input_method   # com.callstack.agentdevice.imehelper/.TestInputMethodService
npx agent-device close

adb uninstall com.callstack.agentdevice.imehelper    # Success

npx agent-device open com.android.settings --platform android   # "Opened: com.android.settings", rc 0
adb shell settings get secure default_input_method   # com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

With a field focused after the second open:

  • keyboard status: Keyboard visible: yes, Input method: com.google.android.inputmethod.latin
  • snapshot --json: keyboard.kind is visible

After daemon stop, the same open reinstalls the helper and selects it (TestInputMethodService, Keyboard visible: no, kind: absent).

Expected

open either reinstalls the helper when it is missing, or fails / warns that the test IME could not be selected.

Likely cause

dist/src/ime-state.js: ensureHelperInstalled is called with a module-level cache: new Set(). Once a device id is in the set, the installation is not checked again.

When it happens in practice

An AVD wiped (-wipe-data) or recreated under the same serial (emulator-5554), or the helper uninstalled, then reopened within the daemon's idle timeout (~5 min after the last close). A plain emulator restart with the helper still installed does not trigger it.

Vorherrschende Sprache
TypeScript
Sterne
5.2k
Forks
359
Ø Merge
12 Std. 43 Min.
Gemergte PRs (30 T.)
666

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus callstack/agent-device

Alle Issues in callstack/agent-device

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.