Framework für die Rechtschreibprüfung

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">
</ph> Ein Bild, das den Lebenszyklus des Rechtschreibprüfungsdienstes zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 1: Die Rechtschreibprüfung Lebenszyklus.

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 das Service 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 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 Das SpellCheckerService.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, oder onGetSuggestionsMultiple(), das Batches von Wortvorschlagsanfragen verarbeitet.

<ph type="x-smartling-placeholder">

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:

<ph type="x-smartling-placeholder">
</ph> Ein Bild, auf dem zu sehen ist, wie die Rechtschreibprüfung in EditText automatisch aktiviert wird <ph type="x-smartling-placeholder">
</ph> Abbildung 2: Die Rechtschreibprüfung in einem EditText

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">
</ph> Ein Bild, das das Diagramm der Interaktion mit einem Rechtschreibprüfungsdienst zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 3: Interaktion mit der Rechtschreibprüfung .

Die LatinIME Eingabemethodeneditor im Android Open Source Project ein Beispiel für Rechtschreibprüfung.