Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Fermée Adaptée aux débutants
#3,407 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
android, typescript
Domaine
mobile, testing

Piste de recherche

Commencez par lire dist/src/ime-state.js, en particulier ensureHelperInstalled et son cache au niveau du module ; suivez les endroits où open l’appelle et vérifiez les tests associés. Reproduisez le problème en ouvrant une application Android, en désinstallant l’IME auxiliaire de test pendant que le daemon reste actif, puis en l’ouvrant à nouveau. Le travail est terminé lorsque l’absence de l’auxiliaire est vérifiée à nouveau et qu’il est réinstallé, ou lorsque open émet un avertissement ou échoue au lieu de signaler un succès alors que le clavier réel est actif.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
TypeScript
Étoiles
5.1k
Forks
339
Merge moyen
12 h 57 min
PR mergées (30 j)
653

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de callstack/agent-device

Toutes les issues de callstack/agent-device

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.