Partilhar via


IInputConnection Interface

Definição

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

[Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")]
public interface IInputConnection : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")>]
type IInputConnection = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Derivado
Atributos
Implementações

Comentários

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada. Ele é usado para executar coisas como ler texto ao redor do cursor, confirmar texto na caixa de texto e enviar eventos de chave bruta para o aplicativo.

A partir do nível android.os.Build.VERSION_CODES#Nde API, o sistema pode lidar com a situação em que o aplicativo implementa diretamente essa classe, mas um ou mais dos seguintes métodos não são implementados.

<><ul li#getSelectedText(int)>, que foi introduzido em android.os.Build.VERSION_CODES#GINGERBREAD.</li><li>#setComposingRegion(int, int), que foi introduzido em android.os.Build.VERSION_CODES#GINGERBREAD.</li><li>#commitCorrection(CorrectionInfo), que foi introduzido em android.os.Build.VERSION_CODES#HONEYCOMB.</li><li>#requestCursorUpdates(int), que foi introduzido em android.os.Build.VERSION_CODES#LOLLIPOP.</li><li>#deleteSurroundingTextInCodePoints(int, int), que foi introduzido em android.os.Build.VERSION_CODES#N.</li><li>#getHandler(), que foi introduzido em android.os.Build.VERSION_CODES#N.</li><li>#closeConnection(), que foi introduzido em android.os.Build.VERSION_CODES#N.</li><li>#commitContent(InputContentInfo, int, Bundle), que foi introduzido em android.os.Build.VERSION_CODES#N_MR1.</li></ul>

<h3>Implementando um IME ou um editor</h3>

A entrada de texto é o resultado da sinergia de dois componentes essenciais: um IME (Input Method Engine) e um editor. O IME pode ser um teclado de software, uma interface de manuscrito, uma paleta de emojis, um mecanismo de fala para texto e assim por diante. Normalmente, existem vários IMEs instalados em qualquer dispositivo Android. No Android, os IMEs estendem android.inputmethodservice.InputMethodServiceo . Para obter mais informações sobre como criar um IME, consulte o Guia Criando um método de entrada.

O editor é o componente que recebe o texto e o exibe. Normalmente, essa é uma android.widget.EditText instância, mas alguns aplicativos podem optar por implementar seu próprio editor por vários motivos. Essa é uma tarefa grande e complicada, e um aplicativo que faz isso precisa garantir que o comportamento seja consistente com o comportamento padrão do EditText no Android. Um editor precisa interagir com o IME, recebendo comandos por meio dessa interface InputConnection e enviando comandos por meio do android.view.inputmethod.InputMethodManager. Um editor deve começar implementando android.view.View#onCreateInputConnection(EditorInfo) para retornar sua própria conexão de entrada.

Se você estiver implementando seu próprio IME, precisará chamar os métodos nessa interface para interagir com o aplicativo. Certifique-se de testar seu IME com uma ampla gama de aplicativos, incluindo navegadores e editores de rich text, pois alguns podem ter peculiaridades com as quais você precisa lidar. Lembre-se que seu IME pode não ser a única fonte de alterações no texto, e tente ser o mais conservador possível nos dados que você envia e o mais liberal possível nos dados que você recebe.

Se você estiver implementando seu próprio editor, provavelmente precisará fornecer sua própria subclasse de BaseInputConnection para responder aos comandos dos IMEs. Certifique-se de testar seu editor com o máximo de IMEs que puder, pois seu comportamento pode variar muito. Certifique-se também de testar com vários idiomas, incluindo idiomas CJK e idiomas da direita para a esquerda, como árabe, pois eles podem ter requisitos de entrada diferentes. Quando estiver em dúvida sobre o comportamento que você deve adotar para uma chamada específica, por favor, imite a implementação padrão do TextView na versão mais recente do Android e, se você decidir se desviar dela, considere cuidadosamente que as inconsistências no comportamento do editor de texto são quase universalmente sentidas como uma coisa ruim pelos usuários.

<h3>Cursores, seleções e composições</h3>

No Android, o cursor e a seleção são a mesma coisa. Um "cursor" é apenas o caso especial de uma seleção de tamanho zero. Como tal, esta documentação usa-os de forma intercambiável. Qualquer método agindo "antes do cursor" agiria antes do início da seleção, se houver, e qualquer método agindo "depois do cursor" agiria após o término da seleção.

Um editor precisa ser capaz de acompanhar uma região atualmente "compondo", como fazem os widgets de edição padrão. A composição é marcada em um estilo específico: veja android.text.Spanned#SPAN_COMPOSING. Os IMEs usam isso para ajudar o usuário a acompanhar em que parte do texto ele está se concentrando no momento e interagir com o editor usando InputConnection#setComposingText(CharSequence, int), InputConnection#setComposingRegion(int, int) e InputConnection#finishComposingText(). A região de composição e a seleção são completamente independentes uma da outra, e o IME pode usá-las da maneira que achar melhor.

Documentação Java para android.view.inputmethod.InputConnection.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Propriedades

Handle

Obtém o valor JNI do objeto Android subjacente.

(Herdado de IJavaObject)
Handler

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

JniIdentityHashCode

Retorna o valor de java.lang.System.identityHashCode() para a instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso de membros e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias do objeto Java encapsulado.

(Herdado de IJavaPeerable)

Métodos

BeginBatchEdit()

Diga ao editor que você está iniciando um lote de operações do editor.

ClearMetaKeyStates(MetaKeyStates)

Limpe os estados pressionados da tecla meta fornecida na conexão de entrada fornecida.

CloseConnection()

Chamado pelo sistema até apenas uma vez para notificar que o sistema está prestes a invalidar a conexão entre o método de entrada e o aplicativo.

CommitCompletion(CompletionInfo)

Confirme uma conclusão que o usuário selecionou entre as possíveis relatadas anteriormente para InputMethodSession#displayCompletions InputMethodSession#displayCompletions(CompletionInfo[]) ou InputMethodManager#displayCompletions InputMethodManager#displayCompletions(View, CompletionInfo[]).

CommitContent(InputContentInfo, InputContentFlags, Bundle)

Chamado pelo método de entrada para confirmar conteúdo, como uma imagem PNG, no editor.

CommitCorrection(CorrectionInfo)

Confirme uma correção executada automaticamente na entrada do usuário bruto.

CommitText(ICharSequence, Int32)

Confirme o texto na caixa de texto e defina a nova posição do cursor.

CommitText(ICharSequence, Int32, TextAttribute)

A variante de InputConnection#commitText(CharSequence, int).

CommitText(String, Int32, TextAttribute)

A variante de InputConnection#commitText(CharSequence, int).

DeleteSurroundingText(Int32, Int32)

Exclua <var>antesComprimento</var> caracteres do texto antes da posição atual do cursor e exclua <var>depoisComprimento</var> caracteres do texto após a posição atual do cursor, excluindo a seleção.

DeleteSurroundingTextInCodePoints(Int32, Int32)

Uma variante do #deleteSurroundingText(int, int).

Disposed()

Chamado quando a instância tiver sido descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a este caso, então chame Dispose(), caso contrário, não faz nada.

(Herdado de IJavaPeerable)
EndBatchEdit()

Diga ao editor que você terminou com uma edição em lote iniciada anteriormente com #beginBatchEdit()o .

Finalized()

Chamado quando a instância tiver sido finalizada.

(Herdado de IJavaPeerable)
FinishComposingText()

Faça com que o editor de texto conclua qualquer texto de composição que esteja ativo no momento.

GetCursorCapsMode(CapitalizationMode)

Recupere o modo de capitalização atual em vigor na posição atual do cursor no texto.

GetExtractedText(ExtractedTextRequest, GetTextFlags)

Recupere o texto atual no editor da conexão de entrada e monitore quaisquer alterações nele.

GetSelectedTextFormatted(GetTextFlags)

Obtém o texto selecionado, se houver.

GetSurroundingText(Int32, Int32, Int32)

Obtém o texto ao redor do cursor atual, com <var antesComprimento</var> caracteres de texto antes do cursor (início da seleção), <var>afterLength</var> caracteres de texto após o cursor (final da seleção) e todo>o texto selecionado.

GetTextAfterCursorFormatted(Int32, GetTextFlags)

Obtenha <caracteres var>n</var> do texto após a posição atual do cursor.

GetTextBeforeCursorFormatted(Int32, GetTextFlags)

Obtenha <caracteres var>n</var> do texto antes da posição atual do cursor.

PerformContextMenuAction(Int32)

Execute uma ação de menu de contexto no campo.

PerformEditorAction(ImeAction)

Peça ao editor que execute uma ação que ele disse que pode fazer.

PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer)

Execute um gesto de manuscrito no texto.

PerformPrivateCommand(String, Bundle)

API para enviar comandos privados de um método de entrada para seu editor conectado.

PerformSpellCheck()

Peça ao editor que execute a verificação ortográfica do conteúdo completo.

PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal)

Visualizar um gesto de manuscrito no texto.

ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute)

Substitua o intervalo específico no editor pelo texto sugerido.

ReplaceText(Int32, Int32, String, Int32, TextAttribute)

Substitua o intervalo específico no editor pelo texto sugerido.

ReportFullscreenMode(Boolean)

Chamado de volta quando o IME conectado alterna entre os modos de tela cheia e normal.

RequestCursorUpdates(Int32)

Chamado pelo método de entrada para pedir ao editor para chamar de volta InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) para notificar os locais do cursor/âncora.

RequestCursorUpdates(Int32, Int32)

Chamado pelo método de entrada para pedir ao editor para chamar de volta InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) para notificar os locais do cursor/âncora.

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

Chamado pelo método de entrada para solicitar o TextBoundsInfo para um intervalo de texto que é coberto por ou nas proximidades do dado bounds.

SendKeyEvent(KeyEvent)

Envie um evento de chave para o processo que está atualmente anexado por meio dessa conexão de entrada.

SetComposingRegion(Int32, Int32)

Marque uma determinada região de texto como texto de composição.

SetComposingRegion(Int32, Int32, TextAttribute)

A variante de InputConnection#setComposingRegion(int, int).

SetComposingText(ICharSequence, Int32)

Substitua o texto que está sendo composto atualmente pelo texto fornecido e defina a nova posição do cursor.

SetComposingText(ICharSequence, Int32, TextAttribute)

A variante de #setComposingText(CharSequence, int).

SetComposingText(String, Int32, TextAttribute)

A variante de #setComposingText(CharSequence, int).

SetImeConsumesInput(Boolean)

Chamado pelo método de entrada para indicar que ele consome toda a entrada para si mesmo, ou não o faz mais.

SetJniIdentityHashCode(Int32)

Defina o valor retornado por JniIdentityHashCode.

(Herdado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

(Herdado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Defina o valor retornado por PeerReference.

(Herdado de IJavaPeerable)
SetSelection(Int32, Int32)

Defina a seleção do editor de texto.

TakeSnapshot()

Chamado pelo sistema quando ele precisa tirar um instantâneo de vários dados relacionados a texto de maneira atômica.

UnregisterFromRuntime()

Cancele o registro dessa instância para que o tempo de execução não a retorne de chamadas futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada em tempo de execução do Android.

CommitText(IInputConnection, String, Int32)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

CommitText(IInputConnection, String, Int32, TextAttribute)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

GetSelectedText(IInputConnection, GetTextFlags)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

SetComposingText(IInputConnection, String, Int32)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

SetComposingText(IInputConnection, String, Int32, TextAttribute)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

JavaCast<TResult>(IJavaObject)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

GetJniTypeName(IJavaPeerable)

A interface InputConnection é o canal de comunicação de um InputMethod back para o aplicativo que está recebendo sua entrada.

Aplica-se a