Die Android-Plattform bietet ein Framework für die Rechtschreibprüfung, mit dem Sie die Rechtschreibprüfung in Ihrer App implementieren und darauf zugreifen können. Das Framework ist eines der Text Service APIs
Um das Framework in Ihrer App zu verwenden, erstellen Sie einen Android-Dienst, der generiert ein session-Objekt für die Rechtschreibprüfung. Basierend auf dem von Ihnen bereitgestellten Text Das Sitzungsobjekt gibt Rechtschreibvorschläge zurück, die durch die Rechtschreibung generiert wurden. Checker.
Lebenszyklus der Rechtschreibprüfung
Das folgende Diagramm zeigt den Lebenszyklus des Rechtschreibprüfungsdienstes:
<ph type="x-smartling-placeholder">Um die Rechtschreibprüfung zu starten, beginnt Ihre App mit der Implementierung der Rechtschreibprüfung. Checker Service. Clients in Ihrer App, z. B. Aktivitäten oder individuelle Benutzeroberflächen -Elemente vom Dienst anfordern, eine Rechtschreibprüfung anfordern und dann um Vorschläge für Text zu erhalten. Wenn ein Client seinen Vorgang beendet, wird er geschlossen. Rechtschreibprüfung aktiviert. Falls nötig, kann deine App den Zauberspruch Prüfdienst jederzeit ausführen.
Rechtschreibprüfung implementieren
Fügen Sie einen Dienst für die Rechtschreibprüfung hinzu, um das Framework für die Rechtschreibprüfung in Ihrer App zu verwenden Komponente, die die Sitzungsobjektdefinition enthält. Sie können auch eine optionale Aktivität an die App senden, über die die Einstellungen gesteuert werden. XML-Metadatendatei hinzufügen die die Rechtschreibprüfung beschreibt, und fügen Sie die entsprechenden Elemente Ihre Manifestdatei.
Kurse zur Rechtschreibprüfung
Definieren Sie den Dienst und das Sitzungsobjekt mit den folgenden Klassen:
-
- Eine abgeleitete Klasse von
SpellCheckerService
- Die
SpellCheckerService
implementiert sowohl dasService
und der Benutzeroberfläche des Rechtschreibprüfungs-Frameworks an. Innerhalb Ihrer abgeleiteten Klasse die folgende Methode implementieren: <ph type="x-smartling-placeholder">- </ph>
createSession()
- Eine Factory-Methode, die einen
SpellCheckerService.Session
-Objekt zu einem Client, möchte die Rechtschreibung prüfen.
- Eine abgeleitete Klasse von
-
- Eine Implementierung von
SpellCheckerService.Session
- Ein Objekt, das der Rechtschreibprüfungsdienst für Clients bereitstellt, damit wird er Text an die Rechtschreibprüfung übergeben und Vorschläge erhalten. In diesem implementieren Sie die folgenden Methoden: <ph type="x-smartling-placeholder">
- </ph>
onCreate()
- Wird vom System als Reaktion auf
createSession()
. Bei dieser Methode können Sie DasSpellCheckerService.Session
-Objekt basierend auf dem die aktuelle Sprache und andere Details. onGetSentenceSuggestionsMultiple()
- Führt die eigentliche Rechtschreibprüfung durch. Diese Methode gibt ein Array von
SentenceSuggestionsInfo
mit Vorschlägen für die an sie übergebenen Sätze.
Optional können Sie
onCancel()
, die Anfragen zum Abbrechen der Rechtschreibprüfung verarbeitet;onGetSuggestions()
, die eine Anfrage für Wortvorschläge verarbeitet, oderonGetSuggestionsMultiple()
, das Batches von Wortvorschlagsanfragen verarbeitet. - Eine Implementierung von
Manifest und Metadaten der Rechtschreibprüfung
Geben Sie neben Code die entsprechende Manifestdatei sowie Metadaten an, für die Rechtschreibprüfung.
Die Manifestdatei definiert die App, den Dienst und die Aktivität für die Einstellungen zu steuern, wie im folgenden Beispiel gezeigt:
<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>
Komponenten, die den Dienst verwenden möchten, müssen die Berechtigung anfordern
BIND_TEXT_SERVICE
damit nur das System eine Bindung an den Dienst herstellt. Die Definition des Dienstes
gibt außerdem die Metadatendatei spellchecker.xml
an, die
die im nächsten Abschnitt beschrieben werden.
Die Metadatendatei spellchecker.xml
enthält Folgendes:
XML-Datei:
<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>
Die Metadaten geben die Aktivität an, die von der Rechtschreibprüfung zur Steuerung verwendet wird Einstellungen. Außerdem werden Untertypen für die Rechtschreibprüfung definiert. In diesem Fall Untertypen werden Gebietsschemata definiert, die von der Rechtschreibprüfung verarbeitet werden können.
Von einem Client aus auf die Rechtschreibprüfung zugreifen
Apps, die
TextView
und
EditText
Ansichten profitieren automatisch von der Rechtschreibprüfung, da TextView
verwendet automatisch eine Rechtschreibprüfung:
Vielleicht möchten Sie jedoch direkt mit einem Rechtschreibprüfungsdienst in anderen Fällen. Das folgende Diagramm zeigt den Ablauf der Interaktion mit einem Rechtschreibprüfungsdienst:
<ph type="x-smartling-placeholder">Die LatinIME Eingabemethodeneditor im Android Open Source Project ein Beispiel für Rechtschreibprüfung.