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:
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 classeService
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 sous-classe de
-
- 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'objetSpellCheckerService.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, ouonGetSuggestionsMultiple()
, qui gère les lots de requêtes de suggestions de mots. - Une implémentation de
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:
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:
L'éditeur de mode de saisie LatinIME dans le projet Android Open Source contient un exemple de vérification orthographique.