Framework de corretor ortográfico

A plataforma Android oferece um framework de corretor ortográfico que permite implementar e acessar a verificação ortográfica no seu app. A estrutura é uma APIs Text Service.

Para usar o framework no seu app, crie um serviço do Android que gera um objeto session do corretor ortográfico. Com base no texto enviado, o objeto session retorna sugestões de ortografia geradas pelo feitiço verificador de segurança.

Ciclo de vida do corretor ortográfico

O diagrama a seguir mostra o ciclo de vida do serviço de corretor ortográfico:

Uma imagem que mostra o ciclo de vida do serviço de corretor ortográfico
Figura 1. O serviço de corretor ortográfico no ciclo de vida de ML.

Para iniciar a verificação ortográfica, o app inicia a implementação da ortografia verificador de segurança. Clientes no seu app, como atividades ou interface individual elementos, solicite ao serviço uma sessão do corretor ortográfico e use a sessão para receber sugestões de texto. Quando o cliente encerra a operação, a sessão do corretor ortográfico. Se necessário, o app pode encerrar o feitiço verificador a qualquer momento.

Implementar um serviço de corretor ortográfico

Para usar o framework de corretor ortográfico no seu app, adicione um serviço de corretor ortográfico que inclui a definição do objeto de sessão. Também é possível adicionar um atividade opcional no app que controla as configurações. Adicionar um arquivo de metadados XML que descreva o serviço de corretor ortográfico e adicione os elementos apropriados ao no arquivo de manifesto.

Classes do corretor ortográfico

Defina o serviço e o objeto session com as seguintes classes:

  • Uma subclasse de SpellCheckerService
    O SpellCheckerService implementa o Service e a interface do framework do corretor ortográfico. Na sua subclasse, implemente o seguinte método:
    createSession()
    Um método de fábrica que retorna uma SpellCheckerService.Session a um cliente que quiser fazer uma verificação ortográfica.
  • Uma implementação do SpellCheckerService.Session
    Um objeto que o serviço de corretor ortográfico fornece aos clientes para permitir passa o texto ao corretor ortográfico e recebe sugestões. Dentro desta , implemente os seguintes métodos:
    onCreate()
    Chamado pelo sistema em resposta a createSession(). Neste método, você pode inicializar o objeto SpellCheckerService.Session com base no a localidade atual e outros detalhes.
    onGetSentenceSuggestionsMultiple()
    Executa a verificação ortográfica em si. Esse método retorna uma matriz de SentenceSuggestionsInfo contendo sugestões para as frases passadas a ela.

    Outra opção é implementar onCancel(), que lida com solicitações de cancelamento da verificação ortográfica; onGetSuggestions(), que lida com uma solicitação de sugestão de palavra. ou onGetSuggestionsMultiple(), que lida com lotes de solicitações de sugestão de palavras.

  • .

Manifesto e metadados do corretor ortográfico

Além do código, forneça o arquivo de manifesto adequado e um arquivo de metadados para o corretor ortográfico.

O arquivo de manifesto define o aplicativo, o serviço e a atividade para de controle de configurações, conforme mostrado no exemplo a seguir:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.samplespellc>hecke<rservice" 
    application
   @     android:labe>l="s<tring/app_name" 
        servi@ce
            android:label="string/app_name"
            android:name=".SampleSpellCheckerService"
            android:>permission=&q<uot;android.pe>rmission.BIND_TEX<T_SERVICE" 
            intent-filter 
                action andr>oid:name=&quo<t;android.serv>ice.textservic<e.SpellCheckerService" /
            /intent-filter

            meta-data
                android:@name="android.>view.text<service.>scs"
<                android:resource=&qu@ot;xml/spellchecker" /
        /service

        activity
            andro>id:label=&quo<t;string/sampl>e_settings"
<            android:name="SpellCheckerSetting>sActivity&quo<t; 
          >  intent-<filter 
 >     <          act<ion andro>id:name="android.intent.action.MAIN" /
            /intent-filter
        /activity
    /application
/manifest

Os componentes que quiserem usar o serviço precisam solicitar a permissão BIND_TEXT_SERVICE para garantir que apenas o sistema seja vinculado ao serviço. A definição do serviço também especifica o arquivo de metadados spellchecker.xml, que é descritos na próxima seção.

O arquivo de metadados spellchecker.xml contém o seguinte XML:

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
        andro@id:label="string/spellchecker_name"
        android:settingsActivity="com.example.Spel>lChec<kerSettingsActivity"
    subty@pe
            android:label="string/subtype_generic"
    >     <   android:subtypeLocale="en”
@    /
    subtype
            android:label="string/subtype_gen>e<ric"
    >        android:subtypeLocale="fr”
    /
/spell-checker

Os metadados especificam a atividade que o corretor ortográfico usa para controlar configurações. Ela também define subtipos para o corretor ortográfico. Nesse caso, o Os subtipos definem as localidades que o corretor ortográfico pode manipular.

Acessar o serviço de corretor ortográfico de um cliente

de apps que usam TextView e EditText visualizações se beneficiam automaticamente da verificação ortográfica, porque TextView usa automaticamente um corretor ortográfico:

Uma imagem mostrando como o corretor ortográfico é ativado automaticamente no EditText
Figura 2. A verificação ortográfica em uma EditText:

No entanto, você pode querer interagir diretamente com um serviço de corretor ortográfico em outros casos. O diagrama a seguir mostra o fluxo de controle para interagir com um serviço de corretor ortográfico:

Imagem mostrando o diagrama da interação com um serviço de corretor ortográfico
Figura 3. Interação com um corretor ortográfico serviço.

A LatimIME "Editor de método de entrada" no Android Open Source Project contém um exemplo de verificação ortográfica.