Framework del corrector ortográfico

La plataforma de Android ofrece un framework del corrector ortográfico que te permite implementar y acceder al corrector ortográfico en tu aplicación. El {i>framework<i} es uno de los de las APIs de Text Service.

Para usar el framework en tu app, crea un servicio de Android que genera un objeto session del corrector ortográfico. A partir del texto que proporciones, El objeto session muestra sugerencias de ortografía que genera el hechizo. de verificación.

Ciclo de vida del corrector ortográfico

En el siguiente diagrama, se muestra el ciclo de vida del servicio de corrector ortográfico:

Imagen que muestra el ciclo de vida del servicio de corrector ortográfico
Figura 1: El servicio del corrector ortográfico en el ciclo de vida del AA.

Para iniciar la corrección ortográfica, tu app inicia la implementación del corrector de verificación. Clientes en tu app, como actividades o IU individuales solicitar una sesión del corrector ortográfico del servicio y, luego, usar la sesión para obtener sugerencias de texto. Cuando un cliente finaliza su operación, se cierra la sesión del corrector ortográfico. Si es necesario, tu app puede desactivar el hechizo de verificación en cualquier momento.

Cómo implementar un servicio de corrector ortográfico

Para usar el framework del corrector ortográfico en tu app, agrega un servicio de corrector ortográfico que incluya la definición del objeto session. También puedes agregar actividad opcional de tu app que controla la configuración. Cómo agregar un archivo de metadatos XML que describa el servicio del corrector ortográfico y agregue los elementos apropiados tu archivo de manifiesto.

Clases de corrector ortográfico

Define el servicio y el objeto de sesión con las siguientes clases:

  • Una subclase de SpellCheckerService
    SpellCheckerService implementa ambos Service y la interfaz del framework del corrector ortográfico. Dentro de la subclase, implementa el siguiente método:
    createSession()
    Es un método de fábrica que devuelve un objeto SpellCheckerService.Session a un cliente que quiere comprobar la ortografía.
  • Una implementación de SpellCheckerService.Session
    Un objeto que el servicio de corrector ortográfico ofrece a los clientes para permitirles le envían el texto al corrector ortográfico y reciben sugerencias. En este implementa los siguientes métodos:
    onCreate()
    El sistema lo llama en respuesta a createSession() En este método, puedes inicializar el objeto SpellCheckerService.Session según la la configuración regional actual y otros detalles.
    onGetSentenceSuggestionsMultiple()
    Realiza la corrección ortográfica real. Este método devuelve un array de SentenceSuggestionsInfo con sugerencias para las oraciones que pasan.

    De manera opcional, puedes implementar onCancel(), que maneja las solicitudes para cancelar la corrección ortográfica; onGetSuggestions(), que maneja una solicitud de sugerencia de palabras; o onGetSuggestionsMultiple(), que maneja lotes de solicitudes de sugerencias de palabras.

Manifiesto y metadatos del corrector ortográfico

Además del código, proporciona el archivo de manifiesto adecuado y una para el corrector ortográfico.

El archivo de manifiesto define la aplicación, el servicio y la actividad para controlando la configuración, como se muestra en el siguiente ejemplo:

<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>

Los componentes que quieran usar el servicio deben solicitar el permiso BIND_TEXT_SERVICE para garantizar que solo el sistema se vincule con el servicio. La definición del servicio también especifica el archivo de metadatos spellchecker.xml, que es que se describe en la sección siguiente.

El archivo de metadatos spellchecker.xml contiene lo siguiente: XML:

<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>

Los metadatos especifican la actividad que el corrector ortográfico utiliza para controlar configuración. También define los subtipos del corrector ortográfico. En este caso, el Los subtipos definen las configuraciones regionales que el corrector ortográfico puede controlar.

Cómo acceder al servicio de corrector ortográfico de un cliente

apps que usan TextView y EditText Las vistas se benefician automáticamente de la corrección ortográfica, porque TextView utiliza automáticamente un corrector ortográfico:

Imagen que muestra cómo el corrector ortográfico se habilita automáticamente en EditText
Figura 2: Corrector ortográfico en un EditText

Sin embargo, tal vez quieras interactuar directamente con un servicio de corrector ortográfico en en otros casos. En el siguiente diagrama, se muestra el flujo de control para interactuar con un servicio de corrector ortográfico:

Una imagen que muestra el diagrama de la interacción con un servicio de corrector ortográfico
Figura 3: Interacción con un corrector ortográfico servicio.

El latino de método de entrada en el Proyecto de código abierto de Android contiene un ejemplo de y el corrector ortográfico.