1 votes

La nouvelle application de clavier n'est pas répertoriée dans la page des paramètres de langue et de saisie.

J'ai téléchargé et importé Exemple de clavier logiciel du SDK Android (une application) à Android studio et l'a installé dans mon Sony xPeria Z3 sous Android 5.1.1. Ceci étant dit, je ne vois pas le nom de l'application dans Langue et saisie page des paramètres.

J'ai vérifié la liste des applications installées sur mon téléphone et je vois que SoftKeyboard est installé et dans Android Studio, il n'y a pas d'erreur.

Pouvez-vous me montrer un moyen de résoudre ce problème ?

1voto

Firelord Points 23064

Note : les commandes de cette solution nécessitent adb La solution est testée sur Android 4.2.1, 5.0.2 et 5.1.1.


Chaque fois qu'une application équipée d'un service IME est installée dans le système, pour connecter son EMI au système le propriétaire de l'appareil doit autoriser explicitement l'application à faire partie des méthodes de saisie activées.

Alors comment cela se passe-t-il ? Nous savons que nous pouvons utiliser la ligne de commande, mais ce n'est pas ce que font les utilisateurs ordinaires.

Ça se passe comme ça. Lorsque vous lancez cette application, il vous est ou serait demandé d'activer son clavier. Vous êtes alors redirigé vers une sous-activité de l'application Paramètres. Dans les ROMs proches de stock Android, un utilisateur peut accéder à cette sous-activité à partir de Paramètres → Langue et saisie → Clavier actuel → Choisir les claviers . Voici comment cela se présente sur certains appareils :

(Cliquez sur l'image pour l'agrandir ; image gracieuseté de OP)

IMG:

Vous pouvez utiliser la ligne de commande comme alternative pour afficher cette sous-activité

adb shell am start -a android.settings.INPUT_METHOD_SETTINGS
adb shell "am start 'intent:#Intent;action=android.settings.INPUT_METHOD_SETTINGS;end'"  # alternative to above command

Pour une application, dès que vous tournez le curseur vers la droite dans cette sous-activité, l'identifiant de son IME est ajouté à la valeur de l'élément suivant méthodes d'entrée activées - un paramètre sécurisé. L'application est alors répertoriée sous Paramètres → Langue et saisie parmi celles déjà activées comme méthodes d'entrée.

Puisqu'un seul IME peut rester comme IME par défaut dans le système, l'application vous montre alors une boîte de dialogue pour sélectionner une application de clavier par défaut. Cette boîte de dialogue est accessible à partir de Paramètres → Langue et saisie → Clavier actuel . L'entrée que vous choisissez devient le clavier par défaut de l'appareil.

Maintenant que vous connaissez les détails, vous pouvez facilement ajouter un clavier dans les méthodes de saisie activées, y compris dans votre application clavier d'exemple.


Activation du clavier par la ligne de commande

Il y a aussi un autre moyen. Toutes les méthodes d'entrée activées peuvent être listées par cette commande :

adb shell ime list -s

Exemple de sortie

com.android.inputmethod.latin/.LatinIME
net.zhdev.ctrlvkeyboard/.CtrlVKeyboard

Tous les services IME disponibles (activés ou non) peuvent être listés par le biais de

adb shell ime list -a

Exemple de sortie

com.android.inputmethod.latin/.LatinIME:
  mId=**com.android.inputmethod.latin/.LatinIME** mSettingsActivityName=com.android.inputmethod.latin.settings.SettingsActivity
  mIsDefaultResId=0x7f070000
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=com.android.inputmethod.latin.LatinIME
      packageName=com.android.inputmethod.latin
      labelRes=0x7f08003a nonLocalizedLabel=null icon=0x0 banner=0x0
      enabled=true exported=true processName=com.android.inputmethod.latin
      permission=android.permission.BIND\_INPUT\_METHOD
      flags=0x0
net.zhdev.ctrlvkeyboard/.CtrlVKeyboard:
  mId=**net.zhdev.ctrlvkeyboard/.CtrlVKeyboard** mSettingsActivityName=null
  mIsDefaultResId=0x0
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=net.zhdev.ctrlvkeyboard.CtrlVKeyboard
      packageName=net.zhdev.ctrlvkeyboard
      labelRes=0x7f0b0015 nonLocalizedLabel=null icon=0x0 banner=0x0
      enabled=true exported=true processName=net.zhdev.ctrlvkeyboard
      permission=android.permission.BIND\_INPUT\_METHOD
      flags=0x0
com.touchtype.swiftkey/com.touchtype.KeyboardService:
  mId=**com.touchtype.swiftkey/com.touchtype.KeyboardService** mSettingsActivityName=com.touchtype.settings.TouchTypeKeyboardSettings
  mIsDefaultResId=0x0
  Service:
    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false
    ServiceInfo:
      name=com.touchtype.KeyboardService
      packageName=com.touchtype.swiftkey
      enabled=true exported=true processName=com.touchtype.swiftkey
      permission=android.permission.BIND\_INPUT\_METHOD
      flags=0x0

Les chaînes en surbrillance à côté de mId= sont les ID des applications clavier disponibles dans mon système.

Dans tout ID, la chaîne avant / est le nom du paquet de l'application clavier. Exemple : pour le clavier Swiftkey, le mId est :

com.touchtype.swiftkey/com.touchtype.KeyboardService

La chaîne com.touchtype.swiftkey est le nom du paquet de l'application Swiftkey. Le nom du paquet est ce qui vous aidera à trouver le mID approprié que vous devez utiliser pour activer une application clavier particulière.

Pour connaître le nom du paquet d'une application, suivez les instructions suivantes Afficher le nom complet du paquet de l'application ?

Pour ajouter ou supprimer un EMI dans les méthodes d'entrée activées, procédez comme suit

# replace ID with mId of the keyboard app which you want to add or remove

adb shell ime enable ID   
adb shell ime disable ID  

Pour faire d'un EMI l'EMI par défaut du système, procédez comme suit

# Note that it doesn't matter whether the IME is added into enabled input methods or not. Consider this a direct override.

adb shell settings put secure default_input_method "ID"
adb shell content update --uri content://settings/secure --bind value:s:"ID"  --where "name='default_input_method'"  # alternative to above command

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X