IInputConnection Interface

Definição

A interface InputConnection é o canal de comunicação de um InputMethod aplicativo de volta 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 aplicativo de volta para o aplicativo que está recebendo sua entrada. Ele é usado para executar itens 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 métodos a seguir 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 (Mecanismo de Método de Entrada) e um editor. O IME pode ser um teclado de software, uma interface de manuscrito, uma paleta de emojis, um mecanismo de fala em texto e assim por diante. Normalmente, há várias mensagens instantâneas instaladas em qualquer dispositivo Android específico. No Android, as mensagens instantâneas se estendem android.inputmethodservice.InputMethodService. 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 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 de EditText padrão no Android. Um editor precisa interagir com o IME, receber comandos por meio dessa interface InputConnection e enviar comandos por meio android.view.inputmethod.InputMethodManagerde . 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 variedade de aplicativos, incluindo navegadores e editores de rich text, pois alguns podem ter peculiaridades com as quais você precisa lidar. Lembre-se de 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 enviados e o mais liberal possível nos dados recebidos.

Se você estiver implementando seu próprio editor, provavelmente precisará fornecer sua própria subclasse BaseInputConnection para responder aos comandos de IMEs. Certifique-se de testar seu editor com o máximo de IMEs possível, pois o comportamento deles pode variar muito. Além disso, certifique-se 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, simule a implementação do TextView padrão na versão mais recente do Android e, se você decidir desviá-la, considere cuidadosamente que as inconsistências no comportamento do editor de texto são quase universalmente sentidas como uma coisa ruim pelos usuários.

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

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

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

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 usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Propriedades

Nome Description
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 aplicativo de volta para o aplicativo que está recebendo sua entrada.

JniIdentityHashCode

Retorna o valor da java.lang.System.identityHashCode() instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso ao membro e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas.

(Herdado de IJavaPeerable)

Métodos

Nome Description
BeginBatchEdit()

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

ClearMetaKeyStates(MetaKeyStates)

Desmarque os estados pressionados por meta-tecla determinado na conexão de entrada fornecida.

CloseConnection()

Chamado pelo sistema 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 para o editor.

CommitCorrection(CorrectionInfo)

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

CommitText(ICharSequence, Int32, TextAttribute)

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

CommitText(ICharSequence, Int32)

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

CommitText(String, Int32, TextAttribute)

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

DeleteSurroundingText(Int32, Int32)

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

DeleteSurroundingTextInCodePoints(Int32, Int32)

Uma variante de #deleteSurroundingText(int, int).

Disposed()

Chamado quando a instância foi descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a essa instância, então chamará Dispose(); caso contrário, não fará nada.

(Herdado de IJavaPeerable)
EndBatchEdit()

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

Finalized()

Chamado quando a instância foi 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 as 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 <caracteres var>beforeLength</var> 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)

Faça com que o editor 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()

Faça com que o editor execute verificação ortográfica para obter o 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 modos de tela inteira e normal.

RequestCursorUpdates(Int32, Int32)

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

RequestCursorUpdates(Int32)

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

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

Chamado pelo método de entrada para solicitar um TextBoundsInfo intervalo de texto coberto por ou nas proximidades do determinado 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, TextAttribute)

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

SetComposingRegion(Int32, Int32)

Marque uma determinada região do texto como redigindo texto.

SetComposingText(ICharSequence, Int32, TextAttribute)

A variante de #setComposingText(CharSequence, int).

SetComposingText(ICharSequence, Int32)

Substitua o texto atualmente redigindo pelo texto especificado e defina a nova posição do cursor.

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 aplicativo de volta 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 ao texto de maneira atômica.

UnregisterFromRuntime()

Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

Nome Description
CommitText(IInputConnection, String, Int32, TextAttribute)

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

CommitText(IInputConnection, String, Int32)

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

GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

GetSelectedText(IInputConnection, GetTextFlags)

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

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

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

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

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

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

A interface InputConnection é o canal de comunicação de um InputMethod aplicativo de volta 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 aplicativo de volta para o aplicativo que está recebendo sua entrada.

SetComposingText(IInputConnection, String, Int32, TextAttribute)

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

SetComposingText(IInputConnection, String, Int32)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a