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
SpellCheckerService
implementa oService
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 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.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. 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.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>
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" 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>
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:
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.