0 votes

Changer IME par défaut en IME personnalisé lors de la construction d'une ROM personnalisée

J'ai développé un clavier personnalisé (IME) pour Android que je peux installer et utiliser sur l'appareil sans aucun problème.

La prochaine étape que je veux franchir est de définir ce clavier comme méthode de saisie par défaut dans une compilation personnalisée de l'AOSP sur laquelle je travaille.

J'ai du mal à comprendre les changements que je dois apporter au code source de l'AOSP pour y parvenir.

Toute aide sur la manière de rendre mon clavier personnalisé par défaut serait vraiment appréciée.

0voto

Igor Basko Points 101

En fin de compte, j'ai découvert qu'il existe plusieurs façons de remplacer l'IME par défaut dans AOSP.

Les approches que j'ai envisagées comprennent :

  1. Modifier le code source par défaut de LatinIME.
  2. Modifier le code source de InputMethodManagerService pour sélectionner l'IME personnalisé.
  3. Mettr à jour les propriétés de System.Secure de sorte que InputMethodManagerService sélectionne l'IME personnalisé.
  4. D'autres approches possibles dont je pourrais ne pas être au courant.

J'ai choisi de mettre à jour les propriétés de System.Secure au démarrage, en particulier enabled_input_methods et default_input_method. Cette méthode permet de définir l'IME personnalisé comme celui par défaut sans modifier le code principal de l'AOSP, ce qui facilite la maintenance.

Pour mettre en œuvre cela, j'ai utilisé la commande settings put secure dans le script init.rc du dispositif, qui exécute un script bash au démarrage pour exécuter les commandes de réglages nécessaires.

Voici à quoi ressemble le fichier init.rc :

on property:sys.boot_completed=1
    ...
    start vendor.boot_start_sh

service vendor.boot_start_sh /vendor/bin/boot_start.sh
    class main
    user root
    group root system
    disabled
    oneshot

Le fichier init.rc est situé dans le dossier du dispositif spécifique pour lequel vous compilez.

Un exemple de fichier init.rc pour dragonboard se trouve ici.

Ce script init.rc déclenche le script boot_start.sh au démarrage :

#!/system/bin/sh
settings put secure enabled_input_methods com.my_custom_ime.package/.CustomIMEService
settings put secure default_input_method com.my_custom_ime.package/.CustomIMEService

Ces changements garantissent que les réglages sont initialisés afin qu'InputMethodManagerService les lise et sélectionne l'IME personnalisé au lieu de s'appuyer sur sa logique intégrée.

Si quelqu'un a de l'expérience avec d'autres méthodes ou des suggestions pour améliorer cette approche, j'aimerais entendre vos pensées !

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