InputMethodManager Clase

Definición

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

[Android.Runtime.Register("android/view/inputmethod/InputMethodManager", DoNotGenerateAcw=true)]
public sealed class InputMethodManager : Java.Lang.Object
[<Android.Runtime.Register("android/view/inputmethod/InputMethodManager", DoNotGenerateAcw=true)>]
type InputMethodManager = class
    inherit Object
Herencia
InputMethodManager
Atributos

Comentarios

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

Temas tratados aquí: <Ol><li>Architecture Overview<li Li>Applications<li Input Methods>li<>Security</ol>

"ArchitectureOverview"><h3>Architecture Overview</h3>

Hay tres partes principales implicadas en la arquitectura del marco de método de entrada (FMI):

<ul><li> El <administrador> de métodos de entrada fuerte</fuerte> expresado por esta clase es el punto central del sistema que administra la interacción entre todas las demás partes. Se expresa como la API del lado cliente que existe aquí en cada contexto de aplicación y se comunica con un servicio de sistema global que administra la interacción en todos los procesos. <li> Un <método de entrada fuerte>(IME)</strong> implementa un modelo de interacción determinado que permite al usuario generar texto. El sistema se enlaza al método de entrada actual que está en uso, lo que hace que se cree y ejecute, e indica cuándo ocultar y mostrar su interfaz de usuario. Solo se ejecuta un IME a la vez. <li> Varias <aplicaciones> cliente seguras</fuerte> arbitrate con el administrador de métodos de entrada para el foco de entrada y el control sobre el estado del IME. Solo un cliente de este tipo está activo (trabajando con el IME) a la vez. </ul>

"Aplicaciones"><h3>Applications</h3>

En la mayoría de los casos, las aplicaciones que usan el estándar android.widget.TextView o sus subclases tendrán poco que hacer para funcionar bien con métodos de entrada suaves. Las principales cosas que debe tener en cuenta son:

<ul><li> Establece correctamente en las android.R.attr#inputType vistas de texto editables, de modo que el método de entrada tendrá suficiente contexto para ayudar al usuario a escribir texto en ellas. <li> Tratar bien con perder espacio de pantalla cuando se muestra el método de entrada. Lo ideal es que una aplicación controle el tamaño de su ventana más pequeña, pero puede depender del sistema que realiza el movimiento panorámico de la ventana si es necesario. Debe establecer el atributo en la actividad o los valores correspondientes en las ventanas que cree para ayudar al sistema a determinar si se va a cambiar o cambiar el android.R.attr#windowSoftInputMode tamaño (intentará determinar esto automáticamente, pero puede que se produzca un error). <li> También puede controlar el estado de entrada suave preferido (abierto, cerrado, etc.) para la ventana con el mismo android.R.attr#windowSoftInputMode atributo. </ul>

El control más preciso está disponible a través de las API aquí para interactuar directamente con el FMI y su IME, ya sea mostrando u ocultando el área de entrada, permitiendo al usuario elegir un método de entrada, etc.

Para las personas raras entre nosotros que escriben sus propios editores de texto, deberá implementar android.view.View#onCreateInputConnection para devolver una nueva instancia de su propia InputConnection interfaz, lo que permite que el IME interactúe con el editor.

"InputMethods"><h3>Input Methods</h3>

Un método de entrada (IME) se implementa como , android.app.Serviceque normalmente deriva de android.inputmethodservice.InputMethodService. Debe proporcionar la interfaz principal InputMethod , aunque normalmente android.inputmethodservice.InputMethodService los implementadores y los implementadores solo tendrán que tratar con la API de nivel superior allí.

Consulte la clase para obtener más información sobre la android.inputmethodservice.InputMethodService implementación de IME.

"Seguridad"><h3>Seguridad</h3>

Hay muchos problemas de seguridad asociados con los métodos de entrada, ya que básicamente tienen libertad para controlar completamente la interfaz de usuario y supervisar todo lo que el usuario entra. El marco del método de entrada de Android también permite imE arbitrarios de terceros, por lo que se debe tener cuidado para restringir su selección e interacciones.

Estos son algunos puntos clave sobre la arquitectura de seguridad detrás del FMI:

<ul><li>

Solo se permite que el sistema acceda directamente a la interfaz de un IME a través del InputMethodandroid.Manifest.permission#BIND_INPUT_METHOD permiso . Esto se aplica en el sistema sin enlazar a un servicio de método de entrada que no requiera este permiso, por lo que el sistema no puede garantizar que ningún otro cliente que no sea de confianza acceda al método de entrada actual fuera de su control.

<li>

Puede haber muchos procesos cliente del FMI, pero solo puede haber uno activo a la vez. Los clientes inactivos no pueden interactuar con partes clave del FMI a través de los mecanismos descritos a continuación.

<li>

Los clientes de un método de entrada solo tienen acceso a su InputMethodSession interfaz. Se crea una instancia de esta interfaz para cada cliente y solo las llamadas de la sesión asociada al cliente activo se procesarán mediante el IME actual. Esto se aplica para android.inputmethodservice.AbstractInputMethodService las IME normales, pero debe controlarse explícitamente por un IME que personalice la implementación sin procesar InputMethodSession .

<li>

Solo el cliente InputConnection activo aceptará operaciones. El FMI indica a cada proceso de cliente si está activo y el marco exige que los procesos inactivos llamen a inputConnection actual. Esto garantiza que el IME actual solo puede entregar eventos y modificaciones de texto a la interfaz de usuario que el usuario ve como centrado.

<li>

Un IME nunca puede interactuar con un InputConnection mientras la pantalla está desactivada. Esto se aplica al hacer que todos los clientes estén inactivos mientras la pantalla está desactivada y evita que los IME incorrectos conducción de la interfaz de usuario cuando el usuario no pueda ser consciente de su comportamiento.

<li>

Una aplicación cliente puede pedir que el sistema permita al usuario elegir un nuevo IME, pero no puede cambiar mediante programación a uno mismo. Esto evita que las aplicaciones malintencionadas cambien el usuario a su propio IME, que sigue ejecutándose cuando el usuario se desplaza a otra aplicación. Un IME, por otro lado, <em es>/em<> permitido para cambiar mediante programación el sistema a otro IME, ya que ya tiene control total de la entrada del usuario.

<li>

El usuario debe habilitar explícitamente un nuevo IME en la configuración para poder cambiar a él, para confirmar con el sistema que conoce y desea que esté disponible para su uso.

</ul>

Si la aplicación tiene como destino Android 11 (nivel de API 30) o superior, los métodos de esta clase devuelven un resultado filtrado por las reglas de visibilidad del paquete, excepto para el IME conectado actualmente. Las aplicaciones que tienen una consulta para InputMethod#SERVICE_INTERFACE ver todos los IME.

Java documentación para android.view.inputmethod.InputMethodManager.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Campos

Nombre Description
HandwritingDelegateFlagHomeDelegatorAllowed
Obsoletos.

Marca que indica que las vistas de la pantalla principal predeterminada (Intent#CATEGORY_HOME) pueden actuar como delegado de escritura a mano para la vista del editor delegado.

ShowForced

Marca para #showSoftInput indicar que el usuario ha forzado la apertura del método de entrada (por ejemplo, al presionar el menú largo), por lo que no debe cerrarse hasta que lo haga explícitamente.

ShowImplicit
Obsoletos.

Marca para #showSoftInput indicar que se trata de una solicitud implícita para mostrar la ventana de entrada, no como resultado de una solicitud directa por parte del usuario.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
CurrentInputMethodInfo

Devuelve el InputMethodInfo del método de entrada seleccionado actualmente (para el usuario del proceso).

CurrentInputMethodSubtype

Devuelve el subtipo del método de entrada actual.

EnabledInputMethodList

Devuelve la lista de métodos de entrada habilitados.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
InputMethodList

Devuelve la lista de métodos de entrada instalados.

IsAcceptingText

Devuelve true si la vista actualmente atendida acepta modificaciones de texto completo.

IsActive

Devuelve true si alguna vista está activa actualmente para el método de entrada.

IsConnectionlessStylusHandwritingAvailable

Devuelve true si el IME seleccionado actualmente admite sesiones de escritura a mano de lápiz sin conexión y está habilitada.

IsFullscreenMode

Permite detectar si el método de entrada adjunto se ejecuta en modo de pantalla completa.

IsInputMethodSuppressingSpellChecker

Devuelve true si el método de entrada está suprimiendo el corrector ortográfico del sistema.

IsStylusHandwritingAvailable

Devuelve true si el IME seleccionado actualmente admite escritura a mano de Stylus y está habilitado.

JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
JniPeerMembers

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

LastInputMethodSubtype

Devuelve el último usado InputMethodSubtype en el historial del sistema.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ShortcutInputMethodsAndSubtypes

Devuelve un mapa de toda la información del método de entrada de método abreviado y sus subtipos.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)

Métodos

Nombre Description
AcceptStylusHandwritingDelegation(View, String, HandwritingDelegateFlag, IExecutor, IConsumer)

Acepta e inicia una sesión de escritura a mano de lápiz en la vista de delegado, si la delegación de iniciación de escritura a mano se solicitó anteriormente mediante #prepareStylusHandwritingDelegation(View, String) desde el delegador y la vista pertenece a un paquete delegado especificado.

AcceptStylusHandwritingDelegation(View, String, IExecutor, IConsumer)

Acepta e inicia una sesión de escritura a mano de lápiz en la vista de delegado, si la delegación de iniciación de escritura a mano se solicitó anteriormente mediante #prepareStylusHandwritingDelegation(View, String) desde el delegador y la vista pertenece a un paquete delegado especificado.

AcceptStylusHandwritingDelegation(View, String)

Acepta e inicia una sesión de escritura a mano de lápiz en la vista de delegado, si la delegación de iniciación de escritura a mano se solicitó anteriormente mediante #prepareStylusHandwritingDelegation(View, String) desde el delegador y la vista pertenece a un paquete delegado especificado.

AcceptStylusHandwritingDelegation(View)

Acepta e inicia una sesión de escritura a mano de lápiz en la vista de delegado, si la delegación de iniciación de escritura a mano se solicitó anteriormente mediante #prepareStylusHandwritingDelegation(View) el delegador.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
DispatchKeyEventFromInputMethod(View, KeyEvent)

Proporciona la implementación predeterminada de , que se espera que envíe un evento de InputConnection#sendKeyEvent(KeyEvent)teclado desde el IME a un destino de evento adecuado en función del estado de foco especificado View y actual.

DisplayCompletions(View, CompletionInfo[])
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
Equals(Object)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
FromContext(Context)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

GetEnabledInputMethodSubtypeList(InputMethodInfo, Boolean)

Devuelve una lista de subtipos de método de entrada habilitados para la información del método de entrada especificada.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
HideSoftInputFromInputMethod(IBinder, HideSoftInputFlags)

Cierre u oculte el área de entrada temporal del método de entrada, por lo que el usuario ya no la ve o puede interactuar con él.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver)

Solicite ocultar la ventana de entrada temporal del contexto de la ventana que acepta actualmente la entrada.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags)

Solicite ocultar la ventana de entrada temporal del contexto de la ventana que acepta actualmente la entrada.

HideStatusIcon(IBinder)

Este miembro está en desuso.

InvalidateInput(View)

Proporciona una sugerencia al sistema de que el texto asociado a view se actualiza mediante algo que no es un editor de métodos de entrada (IME), de modo que el sistema pueda cancelar las solicitudes de edición de texto pendientes del IME hasta que reciba el nuevo contexto de edición, como el texto circundante proporcionado por InputConnection#takeSnapshot().

InvokeIsActive(View)

Devuelve true si la vista dada es la vista activa actualmente para el método de entrada.

IsWatchingCursor(View)
Obsoletos.

Devuelve true si el método de entrada actual quiere ver la ubicación del cursor del editor de entrada en su ventana.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
PrepareStylusHandwritingDelegation(View, String)

Prepara la delegación de la sesión de escritura a mano de lápiz inicial en un editor diferente en la misma ventana o en una ventana diferente de un paquete diferente a la vista en la que se detectó el trazo de escritura a mano inicial.

PrepareStylusHandwritingDelegation(View)

Prepara la delegación de la sesión de escritura a mano de lápiz inicial en un editor diferente en la misma ventana o diferente de la vista en la que se detectó el trazo de escritura a mano inicial.

RestartInput(View)

Si el método de entrada está conectado actualmente a la vista dada, reinícielo con su nuevo contenido.

SendAppPrivateCommand(View, String, Bundle)

Llame al InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand() método de entrada actual.

SetAdditionalInputMethodSubtypes(String, InputMethodSubtype[])

Establezca subtipos de método de entrada adicionales.

SetCurrentInputMethodSubtype(InputMethodSubtype)

Cambie a un nuevo subtipo de método de entrada del método de entrada actual.

SetExplicitlyEnabledInputMethodSubtypes(String, Int32[])

Actualiza la lista de habilitados InputMethodSubtype explícitamente para un IME determinado propiedad del proceso de llamada.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetInputMethod(IBinder, String)

Forzar el cambio a un nuevo componente de método de entrada.

SetInputMethodAndSubtype(IBinder, String, InputMethodSubtype)

Forzar el cambio a un nuevo método de entrada y subtipo.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
ShouldOfferSwitchingToNextInputMethod(IBinder)

Devuelve true si el IME actual necesita ofrecer a los usuarios formas de cambiar a un método de entrada siguiente (e.

ShowInputMethodAndSubtypeEnabler(String)

Muestra la configuración para habilitar subtipos del método de entrada especificado.

ShowInputMethodPicker()

Mostrar ventana emergente del selector de IME.

ShowSoftInput(View, ShowFlags, ResultReceiver)

Solicite explícitamente que el área de entrada temporal del método de entrada actual se muestre al usuario, si es necesario.

ShowSoftInput(View, ShowFlags)

Sinónimo de #showSoftInput(View, int, ResultReceiver) sin un receptor de resultados: solicite explícitamente que el área de entrada temporal del método de entrada actual se muestre al usuario, si es necesario.

ShowSoftInputFromInputMethod(IBinder, ShowFlags)

Muestra el área de entrada temporal del método de entrada, por lo que el usuario ve la ventana del método de entrada y puede interactuar con él.

ShowStatusIcon(IBinder, String, Int32)

Este miembro está en desuso.

StartConnectionlessStylusHandwriting(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback)

Inicia una sesión de escritura a mano de lápiz sin conexión.

StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback)

Inicia una sesión de escritura a mano de lápiz sin conexión (vea #startConnectionlessStylusHandwriting) y, además, permite que el texto manuscrito reconocido se confirme posteriormente en un editor de texto mediante #acceptStylusHandwritingDelegation(View).

StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, String, IExecutor, IConnectionlessHandwritingCallback)

Inicia una sesión de escritura a mano de lápiz sin conexión (vea #startConnectionlessStylusHandwriting) y, además, permite que el texto manuscrito reconocido se confirme posteriormente en un editor de texto mediante #acceptStylusHandwritingDelegation(View, String).

StartStylusHandwriting(View)

Inicie la sesión de escritura a mano del lápiz.

SwitchToLastInputMethod(IBinder)

Force switch to the last used input method and subtype.

SwitchToNextInputMethod(IBinder, Boolean)

Forzar el cambio al siguiente método de entrada y subtipo.

ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToggleSoftInput(ShowFlags, HideSoftInputFlags)

Este método alterna la presentación de la ventana del método de entrada.

ToggleSoftInputFromWindow(IBinder, ShowSoftInputFlags, HideSoftInputFlags)

Este método alterna la presentación de la ventana del método de entrada.

ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
UpdateCursor(View, Int32, Int32, Int32, Int32)
Obsoletos.

Informe de la ubicación actual del cursor en su ventana.

UpdateCursorAnchorInfo(View, CursorAnchorInfo)

Informe del cambio posicional del punto de inserción de texto o caracteres en la cadena de composición.

UpdateExtractedText(View, Int32, ExtractedText)
UpdateSelection(View, Int32, Int32, Int32, Int32)

Informe del intervalo de selección actual.

ViewClicked(View)

Notifique al evento cuando el usuario pulse o haga clic en la vista de texto.

Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

API del sistema central para la arquitectura global del marco de métodos de entrada (IMF), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a