InputMethodManager Clase

Definición

API del sistema central para la arquitectura general del marco de métodos de entrada (FMI), 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 general del marco de métodos de entrada (FMI), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

Temas tratados aquí: <ol><li>Architecture Overview<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 está ejecutando un IME a la vez. <li> Multiple <strong>client applications</strong> arbitrate with the input method manager for input focus and control over the state of the IME. Solo un cliente de este tipo está activo (trabajando con el IME) a la vez. </ul>

"Aplicaciones"><h3>Aplicaciones</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> Establezca correctamente en las android.R.attr#inputType vistas de texto editables, por lo que el método de entrada tendrá suficiente contexto para ayudar al usuario a escribir texto en ellas. <li> Tratar bien con la pérdida de espacio de pantalla cuando se muestra el método de entrada. Lo ideal es que una aplicación controle su tamaño de 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 android.R.attr#windowSoftInputMode actividad o los valores correspondientes en las ventanas que cree para ayudar al sistema a determinar si se va a desplazar o cambiar el tamaño (intentará determinar esto automáticamente, pero puede que se produzca un error). <li> También puede controlar el estado de entrada temporal preferido (abierto, cerrado, etc.) para la ventana con el mismo android.R.attr#windowSoftInputMode atributo. </ul>

Hay más control más preciso 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 android.inputmethodservice.InputMethodService clase para obtener más información sobre la 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 de métodos 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 el sistema puede acceder 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 uno puede estar 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 mediante 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 se omitan las llamadas de procesos inactivos 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 en el foco.

<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 las IME incorrectas 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>puede<> 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 cada uno un resultado filtrado por las reglas de visibilidad del paquete, excepto el IME conectado actualmente. Las aplicaciones que tienen una consulta para InputMethod#SERVICE_INTERFACE ver todas las IME.

Documentación de Java para android.view.inputmethod.InputMethodManager.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Campos

ShowForced

Marca para #showSoftInput indicar que el usuario ha forzado a abrir el 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

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 atendida actualmente acepta modificaciones de texto completo.

IsActive

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

IsFullscreenMode

Permite detectar si el método de entrada adjunto se está ejecutando 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 la escritura a mano de Lápiz & está habilitada.

JniIdentityHashCode

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

(Heredado de Object)
JniPeerMembers

API del sistema central para la arquitectura general del marco de métodos de entrada (FMI), 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

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

(Heredado de Object)
ShortcutInputMethodsAndSubtypes

Devuelve un mapa de toda la información del método de entrada de acceso directo 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

AcceptStylusHandwritingDelegation(View)

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

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) delegator y la vista pertenece a un paquete delegado especificado.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
DispatchKeyEventFromInputMethod(View, KeyEvent)

Proporciona la implementación predeterminada de InputConnection#sendKeyEvent(KeyEvent), que se espera que envíe un evento de 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()

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

(Heredado de Object)
Dispose(Boolean)

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

(Heredado de Object)
Equals(Object)

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

(Heredado de Object)
FromContext(Context)

API del sistema central para la arquitectura general del marco de métodos de entrada (FMI), 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 del 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)

Sinónimo de #hideSoftInputFromWindow(IBinder, int, ResultReceiver) sin resultado: solicitud para ocultar la ventana de entrada temporal del contexto de la ventana que acepta actualmente la entrada.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver)

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 view a 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 especificada es la vista activa actualmente para el método de entrada.

IsWatchingCursor(View)
Obsoletos.

Devuelve true si el método de entrada actual quiere watch 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)

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.

PrepareStylusHandwritingDelegation(View, String)

Prepara la delegación de iniciar la sesión de escritura a mano de lápiz en un editor diferente en la misma ventana o en una ventana diferente de un paquete 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 especificada, reinícielo con su nuevo contenido.

SendAppPrivateCommand(View, String, Bundle)

Llame InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand() a en el 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[])

Novedades la lista de habilitados InputMethodSubtype explícitamente para un IME determinado que pertenece al 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.

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 los subtipos del método de entrada especificado.

ShowInputMethodPicker()

Mostrar ventana emergente del selector de IME.

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.

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.

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.

StartStylusHandwriting(View)

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

SwitchToLastInputMethod(IBinder)

Force switch to the last used input method and subtype.

SwitchToNextInputMethod(IBinder, Boolean)

Force switch to the next input method and subtype.

ToArray<T>()

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

(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()

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

(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)

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, 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)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

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

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(Heredado de Object)
IJavaPeerable.Finalized()

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

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

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

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Heredado de Object)

Métodos de extensió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 general del marco de métodos de entrada (FMI), que arbitra la interacción entre las aplicaciones y el método de entrada actual.

GetJniTypeName(IJavaPeerable)

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

Se aplica a