Structure du correcteur orthographique

La plate-forme Android propose un framework de correcteur orthographique qui vous permet d'implémenter un correcteur orthographique dans votre application et d'y accéder. Le framework est l'une des API Text Service.

Pour utiliser le framework dans votre application, vous devez créer un service Android qui génère un objet session de correcteur orthographique. En fonction du texte que vous fournissez, l'objet de session renvoie des suggestions orthographiques générées par le correcteur orthographique.

Cycle de vie du correcteur orthographique

Le schéma suivant illustre le cycle de vie du service de vérification orthographique:

Image illustrant le cycle de vie du service de vérification orthographique
Figure 1 : Cycle de vie du service de correcteur orthographique.

Pour lancer le correcteur orthographique, votre application lance son implémentation du service de correction orthographique. Les clients de votre application, tels que des activités ou des éléments d'interface utilisateur individuels, demandent une session de correcteur orthographique au service, puis l'utilisent pour obtenir des suggestions de texte. Lorsqu'un client met fin à son opération, il ferme sa session de vérification orthographique. Si nécessaire, votre application peut arrêter le service du correcteur orthographique à tout moment.

Implémenter un service de correction orthographique

Pour utiliser le framework du correcteur orthographique dans votre application, ajoutez un composant de service de correcteur orthographique qui inclut la définition de l'objet de session. Vous pouvez également ajouter à votre application une activité facultative qui contrôle les paramètres. Ajoutez un fichier de métadonnées XML qui décrit le service de correction orthographique, puis ajoutez les éléments appropriés à votre fichier manifeste.

Classes du correcteur orthographique

Définissez l'objet "service" et "session" avec les classes suivantes:

  • Une sous-classe de SpellCheckerService
    SpellCheckerService implémente à la fois la classe Service et l'interface du framework du correcteur orthographique. Dans votre sous-classe, implémentez la méthode suivante :
    createSession()
    Méthode de fabrique qui renvoie un objet SpellCheckerService.Session à un client qui souhaite vérifier l'orthographe.
  • Une implémentation de SpellCheckerService.Session
    Objet fourni par le service de vérification orthographique aux clients pour leur permettre de lui transmettre du texte et de recevoir des suggestions. Dans cette classe, implémentez les méthodes suivantes :
    onCreate()
    Appelée par le système en réponse à createSession(). Avec cette méthode, vous pouvez initialiser l'objet SpellCheckerService.Session en fonction des paramètres régionaux actuels et d'autres détails.
    onGetSentenceSuggestionsMultiple()
    Effectue le correcteur orthographique proprement dit. Cette méthode renvoie un tableau de SentenceSuggestionsInfo contenant des suggestions pour les phrases qui lui sont transmises.

    Vous pouvez éventuellement implémenter onCancel(), qui gère les demandes d'annulation du correcteur orthographique, onGetSuggestions(), qui gère les requêtes de suggestion de mot, ou onGetSuggestionsMultiple(), qui gère les lots de requêtes de suggestions de mots.

Fichier manifeste et métadonnées du correcteur orthographique

En plus du code, fournissez le fichier manifeste approprié et un fichier de métadonnées pour le correcteur orthographique.

Le fichier manifeste définit l'application, le service et l'activité permettant de contrôler les paramètres, comme illustré dans l'exemple suivant:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.samplespellcheckerservice" >
    <application
        android:label="@string/app_name" >
        <service
            android:label="@string/app_name"
            android:name=".SampleSpellCheckerService"
            android:permission="android.permission.BIND_TEXT_SERVICE" >
            <intent-filter >
                <action android:name="android.service.textservice.SpellCheckerService" />
            </intent-filter>

            <meta-data
                android:name="android.view.textservice.scs"
                android:resource="@xml/spellchecker" />
        </service>

        <activity
            android:label="@string/sample_settings"
            android:name="SpellCheckerSettingsActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Les composants qui souhaitent utiliser le service doivent demander l'autorisation BIND_TEXT_SERVICE pour garantir que seul le système est lié au service. La définition du service spécifie également le fichier de métadonnées spellchecker.xml, qui est décrit dans la section suivante.

Le fichier de métadonnées spellchecker.xml contient le code XML suivant:

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/spellchecker_name"
        android:settingsActivity="com.example.SpellCheckerSettingsActivity">
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="en”
    />
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="fr”
    />
</spell-checker>

Les métadonnées spécifient l'activité utilisée par le vérificateur orthographique pour contrôler les paramètres. Il définit également des sous-types pour le vérificateur orthographique. Dans ce cas, les sous-types définissent les paramètres régionaux que le vérificateur orthographique peut gérer.

Accéder au service du correcteur orthographique à partir d'un client

les applications qui utilisent les vues TextView et EditText bénéficient automatiquement du correcteur orthographique, car TextView utilise automatiquement un correcteur orthographique:

Image montrant comment le correcteur orthographique est automatiquement activé dans EditText
Figure 2 : Correcteur orthographique dans une EditText.

Toutefois, dans d'autres cas, vous souhaiterez peut-être interagir directement avec un service de correcteur orthographique. Le schéma suivant illustre le flux de contrôle lors de l'interaction avec un service de correcteur orthographique:

Image montrant le schéma de l&#39;interaction avec un service de correcteur orthographique
Figure 3 : Interaction avec un service de correcteur orthographique.

L'éditeur de mode de saisie LatinIME dans le projet Android Open Source contient un exemple de vérification orthographique.