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](https://developer.android.google.cn/static/resources/articles/images/spellcheck_lifecycle.png?authuser=19&hl=es)
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 ambosService
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 subclase de
-
- 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 objetoSpellCheckerService.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; oonGetSuggestionsMultiple()
, que maneja lotes de solicitudes de sugerencias de palabras. - Una implementación de
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](https://developer.android.google.cn/static/images/ui/spellchecker_edittext.png?authuser=19&hl=es)
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](https://developer.android.google.cn/static/resources/articles/images/spellcheck_client_flow.png?authuser=19&hl=es)
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.