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 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
- 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.Service
que 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 InputMethod
android.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 |
ShowImplicit |
Obsoletos.
Marca para |
Propiedades
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 |
IsFullscreenMode |
Permite detectar si el método de entrada adjunto se está ejecutando en modo de pantalla completa. |
IsInputMethodSuppressingSpellChecker |
Devuelve |
IsStylusHandwritingAvailable |
Devuelve |
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 |
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 |
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 |
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
DispatchKeyEventFromInputMethod(View, KeyEvent) |
Proporciona la implementación predeterminada de |
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, 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 |
InvokeIsActive(View) |
Devuelve |
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 |
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 |
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, 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. |