InputMethodManager Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 ( |
| ShowForced |
Marca para |
| ShowImplicit |
Obsoletos.
Marca para |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| CurrentInputMethodInfo |
Devuelve el |
| 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 |
| IsActive |
Devuelve |
| IsConnectionlessStylusHandwritingAvailable |
Devuelve |
| IsFullscreenMode |
Permite detectar si el método de entrada adjunto se ejecuta en modo de pantalla completa. |
| IsInputMethodSuppressingSpellChecker |
Devuelve |
| IsStylusHandwritingAvailable |
Devuelve |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| InvokeIsActive(View) |
Devuelve |
| 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 |
| 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 |
| 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 |
| 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 |
| StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, String, IExecutor, IConnectionlessHandwritingCallback) |
Inicia una sesión de escritura a mano de lápiz sin conexión (vea |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| 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 |