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:
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
SpellCheckerServiceimplementa oServicee 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.Sessiona um cliente que quiser fazer uma verificação ortográfica.
- Uma subclasse de
-
- 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 objetoSpellCheckerService.Sessioncom base no a localidade atual e outros detalhes. onGetSentenceSuggestionsMultiple()- Executa a verificação ortográfica em si. Esse método retorna uma matriz de
SentenceSuggestionsInfocontendo 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. ouonGetSuggestionsMultiple(), que lida com lotes de solicitações de sugestão de palavras. .
- Uma implementação do
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 > < >span>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:
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:
A LatimIME "Editor de método de entrada" no Android Open Source Project contém um exemplo de verificação ortográfica.