Langage

InputMethodManager Classe

Définition

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

[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
Héritage
InputMethodManager
Attributs

Remarques

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

Rubriques abordées ici : <ol><li>Architecture Overview<li Applications>li<Input Methods>li<>Security</ol>

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

Il existe trois parties principales impliquées dans l’architecture du framework de méthode d’entrée (FMI) :

<ul><li> Le <>gestionnaire< de méthode d’entrée forte/fort> tel qu’exprimé par cette classe est le point central du système qui gère l’interaction entre toutes les autres parties. Il est exprimé en tant qu’API côté client ici, qui existe dans chaque contexte d’application et communique avec un service système global qui gère l’interaction entre tous les processus. <li> Une méthode d’entrée <forte>(IME)</strong> implémente un modèle d’interaction particulier permettant à l’utilisateur de générer du texte. Le système se lie à la méthode d’entrée actuelle en cours d’utilisation, ce qui l’entraîne à créer et à exécuter, et lui indique quand masquer et afficher son interface utilisateur. Un seul IME est en cours d’exécution à la fois. <li> Plusieurs <applications> clientes fortes</arbitrate forte> avec le gestionnaire de méthodes d’entrée pour le focus d’entrée et le contrôle sur l’état de l’IME. Un seul client de ce type est toujours actif (avec l’IME) à la fois. </ul>

« Applications"><h3>Applications</h3>

Dans la plupart des cas, les applications qui utilisent la norme android.widget.TextView ou ses sous-classes n’auront que peu de choses à faire pour fonctionner correctement avec les méthodes d’entrée réversible. Les principales choses dont vous avez besoin sont les suivantes :

<ul><li correctement> défini dans android.R.attr#inputType vos vues de texte modifiables, afin que la méthode d’entrée dispose d’un contexte suffisant pour aider l’utilisateur à entrer du texte dans celui-ci. <li> Deal well with losing screen space when the input method is displayed. Dans l’idéal, une application doit gérer sa fenêtre redimensionnée plus petite, mais elle peut s’appuyer sur le système effectuant un panoramique de la fenêtre si nécessaire. Vous devez définir l’attribut android.R.attr#windowSoftInputMode sur votre activité ou les valeurs correspondantes sur les fenêtres que vous créez pour aider le système à déterminer s’il faut effectuer un panoramique ou un redimensionnement (il tentera de déterminer cela automatiquement, mais peut se tromper). <li> Vous pouvez également contrôler l’état d’entrée réversible préféré (ouvert, fermé, etc.) pour votre fenêtre à l’aide du même android.R.attr#windowSoftInputMode attribut. </ul>

Un contrôle plus fin est disponible par le biais des API ici pour interagir directement avec le FMI et son IME - afficher ou masquer la zone d’entrée, permettant à l’utilisateur de choisir une méthode d’entrée, etc.

Pour les rares personnes parmi nous qui écrivent leurs propres éditeurs de texte, vous devez implémenter android.view.View#onCreateInputConnection pour retourner une nouvelle instance de votre propre InputConnection interface, ce qui permet à l’IME d’interagir avec votre éditeur.

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

Une méthode d’entrée (IME) est implémentée en tant que android.app.Service, généralement dérivant de android.inputmethodservice.InputMethodService. Il doit fournir l’interface principale InputMethod , bien que cela soit normalement géré par android.inputmethodservice.InputMethodService et les implémenteurs n’auront besoin de traiter l’API de niveau supérieur qu’ici.

Pour plus d’informations sur l’implémentation des imEs, consultez la android.inputmethodservice.InputMethodService classe.

« Sécurité"><h3>Sécurité</h3>

Il existe de nombreux problèmes de sécurité associés aux méthodes d’entrée, car ils ont essentiellement la liberté de piloter complètement l’interface utilisateur et de surveiller tout ce que l’utilisateur entre. L’infrastructure de méthode d’entrée Android autorise également des imEs tierces arbitraires. Vous devez donc veiller à restreindre leur sélection et leurs interactions.

Voici quelques points clés sur l’architecture de sécurité derrière le FMI :

<ul><li>

Seul le système est autorisé à accéder directement à l’interface d’un InputMethod IME via l’autorisation android.Manifest.permission#BIND_INPUT_METHOD . Cela est appliqué dans le système en n’étant pas lié à un service de méthode d’entrée qui ne nécessite pas cette autorisation, le système ne peut garantir qu’aucun autre client non approuvé n’accède à la méthode d’entrée actuelle en dehors de son contrôle.

<li>

Il peut y avoir de nombreux processus clients du FMI, mais un seul peut être actif à la fois. Les clients inactifs ne peuvent pas interagir avec les principales parties du FMI par le biais des mécanismes décrits ci-dessous.

<li>

Les clients d’une méthode d’entrée n’ont accès qu’à son InputMethodSession interface. Une instance de cette interface est créée pour chaque client, et seuls les appels de la session associée au client actif seront traités par l’IME actuel. Cette opération est appliquée pour android.inputmethodservice.AbstractInputMethodService les imEs normales, mais doit être gérée explicitement par un IME qui personnalise l’implémentation brute InputMethodSession .

<li>

Seuls les opérations du InputConnection client actif acceptent les opérations. Le FMI indique à chaque processus client s’il est actif et que le framework applique que, dans les processus inactifs, les appels à inputConnection actuels seront ignorés. Cela garantit que l’IME actuel peut uniquement remettre des événements et des modifications de texte à l’interface utilisateur que l’utilisateur voit comme étant en focus.

<li>

Un IME ne peut jamais interagir avec un InputConnection moment où l’écran est désactivé. Cela est appliqué en rendant tous les clients inactifs pendant que l’écran est désactivé et empêche les imEs incorrectes de conduire l’interface utilisateur lorsque l’utilisateur ne peut pas être conscient de son comportement.

<li>

Une application cliente peut demander au système de choisir un nouvel IME, mais ne peut pas basculer par programmation vers une application elle-même. Cela évite aux applications malveillantes de basculer l’utilisateur vers son propre IME, qui reste en cours d’exécution lorsque l’utilisateur navigue vers une autre application. Un IME, d’autre part, <em>is</em> autorisé à basculer par programme le système vers un autre IME, car il a déjà un contrôle total de l’entrée utilisateur.

<li>

L’utilisateur doit activer explicitement un nouvel IME dans les paramètres avant qu’il puisse passer à celui-ci, pour confirmer auprès du système qu’il en sait et qu’il souhaite le rendre disponible pour une utilisation.

</ul>

Si votre application cible Android 11 (niveau d’API 30) ou une version ultérieure, les méthodes de cette classe retournent chacun un résultat filtré par les règles de visibilité du package, à l’exception de l’IME actuellement connecté. Les applications ayant une requête pour afficher InputMethod#SERVICE_INTERFACE tous les imEs sont disponibles.

Java documentation pour android.view.inputmethod.InputMethodManager.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Champs

Nom Description
HandwritingDelegateFlagHomeDelegatorAllowed
Obsolète.

Indicateur indiquant que les vues de l’écran d’accueil par défaut (Intent#CATEGORY_HOME) peuvent servir de délégateur d’écriture manuscrite pour la vue de l’éditeur délégué.

ShowForced

Indicateur permettant #showSoftInput d’indiquer que l’utilisateur a forcé la méthode d’entrée ouverte (par exemple, en appuyant longuement sur le menu) afin qu’elle ne soit pas fermée tant qu’elle ne le fait pas explicitement.

ShowImplicit
Obsolète.

Indicateur pour #showSoftInput indiquer qu’il s’agit d’une demande implicite pour afficher la fenêtre d’entrée, et non pas en raison d’une demande directe par l’utilisateur.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
CurrentInputMethodInfo

Retourne la InputMethodInfo méthode d’entrée actuellement sélectionnée (pour l’utilisateur du processus).

CurrentInputMethodSubtype

Retourne le sous-type de méthode d’entrée actuelle.

EnabledInputMethodList

Retourne la liste des méthodes d’entrée activées.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
InputMethodList

Retourne la liste des méthodes d’entrée installées.

IsAcceptingText

Retournez true si l’affichage actuellement servi accepte les modifications de texte intégral.

IsActive

Retourne true si une vue est actuellement active pour la méthode d’entrée.

IsConnectionlessStylusHandwritingAvailable

Retourne true si l’IME actuellement sélectionné prend en charge les sessions d’écriture manuscrite sans connexion et est activée.

IsFullscreenMode

Vous permet de déterminer si la méthode d’entrée jointe s’exécute en mode plein écran.

IsInputMethodSuppressingSpellChecker

Retourne true si la méthode d’entrée supprime le vérificateur orthographique système.

IsStylusHandwritingAvailable

Retourne true si l’IME actuellement sélectionné prend en charge l’écriture manuscrite stylus & est activée.

JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
JniPeerMembers

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

LastInputMethodSubtype

Retourne le dernier utilisé InputMethodSubtype dans l’historique système.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ShortcutInputMethodsAndSubtypes

Retourne une carte de toutes les informations de méthode d’entrée de raccourci et de leurs sous-types.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)

Méthodes

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

Accepte et démarre une session d’écriture manuscrite de stylet sur l’affichage délégué, si la délégation d’initiation de l’écriture manuscrite a été demandée précédemment à #prepareStylusHandwritingDelegation(View, String) partir du délégateur et que la vue appartient à un package délégué spécifié.

AcceptStylusHandwritingDelegation(View, String, IExecutor, IConsumer)

Accepte et démarre une session d’écriture manuscrite de stylet sur l’affichage délégué, si la délégation d’initiation de l’écriture manuscrite a été demandée précédemment à #prepareStylusHandwritingDelegation(View, String) partir du délégateur et que la vue appartient à un package délégué spécifié.

AcceptStylusHandwritingDelegation(View, String)

Accepte et démarre une session d’écriture manuscrite de stylet sur l’affichage délégué, si la délégation d’initiation de l’écriture manuscrite a été demandée précédemment à #prepareStylusHandwritingDelegation(View, String) partir du délégateur et que la vue appartient à un package délégué spécifié.

AcceptStylusHandwritingDelegation(View)

Accepte et démarre une session d’écriture manuscrite de stylet sur l’affichage délégué, si la délégation d’initiation de l’écriture manuscrite a été demandée précédemment à l’aide #prepareStylusHandwritingDelegation(View) du délgatoreur.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
DispatchKeyEventFromInputMethod(View, KeyEvent)

Fournit l’implémentation par défaut de InputConnection#sendKeyEvent(KeyEvent), qui est censée distribuer un événement de clavier envoyé de l’IME à une cible d’événement appropriée en fonction de l’état donné View et actuel du focus.

DisplayCompletions(View, CompletionInfo[])
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
Equals(Object)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
FromContext(Context)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

GetEnabledInputMethodSubtypeList(InputMethodInfo, Boolean)

Retourne une liste de sous-types de méthode d’entrée activés pour les informations de méthode d’entrée spécifiées.

GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
HideSoftInputFromInputMethod(IBinder, HideSoftInputFlags)

Fermez/masquez la zone d’entrée réversible de la méthode d’entrée, afin que l’utilisateur ne le voit plus ou puisse interagir avec lui.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver)

Demande de masquer la fenêtre d’entrée réversible dans le contexte de la fenêtre qui accepte actuellement l’entrée.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags)

Demande de masquer la fenêtre d’entrée réversible dans le contexte de la fenêtre qui accepte actuellement l’entrée.

HideStatusIcon(IBinder)

Ce membre est déconseillé.

InvalidateInput(View)

Indique au système que le texte associé view est mis à jour par quelque chose qui n’est pas un éditeur de méthode d’entrée (IME), afin que le système puisse annuler les demandes de modification de texte en attente de l’IME jusqu’à ce qu’il reçoive le nouveau contexte d’édition tel que le texte environnant fourni par InputConnection#takeSnapshot().

InvokeIsActive(View)

Retourne true si la vue donnée est la vue actuellement active pour la méthode d’entrée.

IsWatchingCursor(View)
Obsolète.

Retourne la valeur true si la méthode d’entrée actuelle souhaite surveiller l’emplacement du curseur de l’éditeur d’entrée dans sa fenêtre.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
PrepareStylusHandwritingDelegation(View, String)

Prépare la délégation de démarrage de la session d’écriture manuscrite de stylet à un autre éditeur dans un même ou une autre fenêtre d’un package différent de la vue sur laquelle un trait d’écriture manuscrite initiale a été détecté.

PrepareStylusHandwritingDelegation(View)

Prépare la délégation de démarrage de la session d’écriture manuscrite de stylet à un autre éditeur dans une fenêtre identique ou différente de la vue sur laquelle un trait d’écriture manuscrite initiale a été détecté.

RestartInput(View)

Si la méthode d’entrée est actuellement connectée à la vue donnée, redémarrez-la avec son nouveau contenu.

SendAppPrivateCommand(View, String, Bundle)

Appelez InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand() la méthode d’entrée actuelle.

SetAdditionalInputMethodSubtypes(String, InputMethodSubtype[])

Définissez des sous-types de méthode d’entrée supplémentaires.

SetCurrentInputMethodSubtype(InputMethodSubtype)

Basculez vers un nouveau sous-type de méthode d’entrée de la méthode d’entrée actuelle.

SetExplicitlyEnabledInputMethodSubtypes(String, Int32[])

Met à jour la liste des IME explicitement activés InputMethodSubtype pour un IME donné appartenant au processus appelant.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetInputMethod(IBinder, String)

Forcer le basculement vers un nouveau composant de méthode d’entrée.

SetInputMethodAndSubtype(IBinder, String, InputMethodSubtype)

Forcer le basculement vers une nouvelle méthode d’entrée et un sous-type.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
ShouldOfferSwitchingToNextInputMethod(IBinder)

Retourne true si l’IME actuel doit offrir aux utilisateurs des façons de passer à une méthode d’entrée suivante (e.

ShowInputMethodAndSubtypeEnabler(String)

Afficher les paramètres d’activation des sous-types de la méthode d’entrée spécifiée.

ShowInputMethodPicker()

Afficher la fenêtre contextuelle du sélecteur IME.

ShowSoftInput(View, ShowFlags, ResultReceiver)

Demandez explicitement que la zone d’entrée réversible de la méthode d’entrée actuelle soit affichée à l’utilisateur, si nécessaire.

ShowSoftInput(View, ShowFlags)

Synonyme de #showSoftInput(View, int, ResultReceiver) sans récepteur de résultats : demandez explicitement que la zone d’entrée réversible de la méthode d’entrée actuelle soit affichée à l’utilisateur, si nécessaire.

ShowSoftInputFromInputMethod(IBinder, ShowFlags)

Affichez la zone d’entrée réversible de la méthode d’entrée, afin que l’utilisateur voit la fenêtre de méthode d’entrée et puisse interagir avec elle.

ShowStatusIcon(IBinder, String, Int32)

Ce membre est déconseillé.

StartConnectionlessStylusHandwriting(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback)

Démarre une session d’écriture manuscrite sans connexion.

StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback)

Démarre une session d’écriture manuscrite sans connexion (voir #startConnectionlessStylusHandwriting) et permet également à l’éditeur de texte manuscrit reconnu d’être validé ultérieurement dans un éditeur #acceptStylusHandwritingDelegation(View)de texte.

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

Démarre une session d’écriture manuscrite sans connexion (voir #startConnectionlessStylusHandwriting) et permet également à l’éditeur de texte manuscrit reconnu d’être validé ultérieurement dans un éditeur #acceptStylusHandwritingDelegation(View, String)de texte.

StartStylusHandwriting(View)

Démarrez la session d’écriture manuscrite de stylet.

SwitchToLastInputMethod(IBinder)

Forcez le basculement vers la dernière méthode d’entrée utilisée et le sous-type.

SwitchToNextInputMethod(IBinder, Boolean)

Forcer le passage à la méthode d’entrée et au sous-type d’entrée suivant.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToggleSoftInput(ShowFlags, HideSoftInputFlags)

Cette méthode bascule l’affichage de la fenêtre de méthode d’entrée.

ToggleSoftInputFromWindow(IBinder, ShowSoftInputFlags, HideSoftInputFlags)

Cette méthode bascule l’affichage de la fenêtre de méthode d’entrée.

ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
UpdateCursor(View, Int32, Int32, Int32, Int32)
Obsolète.

Signaler l’emplacement actuel du curseur dans sa fenêtre.

UpdateCursorAnchorInfo(View, CursorAnchorInfo)

Modification positionnelle du point d’insertion de texte et/ou caractères dans la chaîne de composition.

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

Signaler la plage de sélection actuelle.

ViewClicked(View)

Informez l’événement lorsque l’utilisateur a appuyé ou cliqué sur l’affichage texte.

Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

API système centrale à l’architecture globale de l’infrastructure de méthode d’entrée (FMI), qui arbitre l’interaction entre les applications et la méthode d’entrée actuelle.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à