InputMethodManager Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
API di sistema centrale per l'architettura generale del framework del metodo di input (IMF), che arbitra l'interazione tra le applicazioni e il metodo di input corrente.
[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
- Ereditarietà
- Attributi
Commenti
API di sistema centrale per l'architettura generale del framework del metodo di input (IMF), che arbitra l'interazione tra le applicazioni e il metodo di input corrente.
Argomenti trattati qui: <Ol><li Architecture Overview>li<Applications>li<Input Methods>li<>Security</ol>
"ArchitectureOverview"><h3 Architecture Overview>/h3<>
Nell'architettura del framework del metodo di input (IMF) sono coinvolte tre parti principali:
<ul><li> Il <gestore> del metodo di input sicuro</forte> espresso da questa classe è il punto centrale del sistema che gestisce l'interazione tra tutte le altre parti. Viene espressa come API lato client presente in ogni contesto dell'applicazione e comunica con un servizio di sistema globale che gestisce l'interazione tra tutti i processi. <li> Un <metodo di input sicuro>(IME)</strong> implementa un particolare modello di interazione che consente all'utente di generare testo. Il sistema viene associato al metodo di input corrente in uso, causandone la creazione e l'esecuzione e indica quando nascondere e visualizzare l'interfaccia utente. Un solo IME è in esecuzione alla volta. <li Multiple strong client applications/strong arbitrate with the input method manager for input focus and control over the state of the IME.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 client di questo tipo è sempre attivo (lavorando con l'IME) alla volta. </ul>
"Applications"><h3>Applications</h3>
Nella maggior parte dei casi, le applicazioni che usano lo standard android.widget.TextView o le relative sottoclassi avranno poco da fare per funzionare bene con i metodi di input soft. Le cose principali di cui è necessario tenere conto sono:
<ul><li> Impostare correttamente android.R.attr#inputType nelle visualizzazioni di testo modificabili, in modo che il metodo di input abbia un contesto sufficiente per aiutare l'utente a immettervi testo.
<li> Consente di perdere spazio sullo schermo quando viene visualizzato il metodo di input. Idealmente un'applicazione deve gestire il ridimensionamento della finestra, ma può basarsi sul sistema che esegue la panoramica della finestra, se necessario. È consigliabile impostare l'attributo nell'attività android.R.attr#windowSoftInputMode o i valori corrispondenti nelle finestre create per aiutare il sistema a determinare se eseguire la panoramica o il ridimensionamento (tenterà di determinarlo automaticamente, ma potrebbe verificarsi un errore).
<li> È anche possibile controllare lo stato di input soft preferito (aperto, chiuso e così via) per la finestra usando lo stesso android.R.attr#windowSoftInputMode attributo.
</ul>
Un controllo più granulare è disponibile tramite le API qui per interagire direttamente con il FMI e il relativo IME, mostrando o nascondendo l'area di input, consentendo all'utente di selezionare un metodo di input e così via.
Per le rare persone tra noi che scrivono i propri editor di testo, è necessario implementare android.view.View#onCreateInputConnection per restituire una nuova istanza della propria InputConnection interfaccia consentendo all'IME di interagire con l'editor.
"InputMethods"><h3>Metodi< di input/h3>
Un metodo di input (IME) viene implementato come , android.app.Servicein genere derivando da android.inputmethodservice.InputMethodService. Deve fornire l'interfaccia principale InputMethod , anche se questo viene normalmente gestito dagli android.inputmethodservice.InputMethodService implementatori e dovrà gestire solo l'API di livello superiore.
Per altre informazioni sull'implementazione di IMEs, vedere la android.inputmethodservice.InputMethodService classe .
"Sicurezza"><h3>Sicurezza</h3>
Ci sono molti problemi di sicurezza associati ai metodi di input, poiché essenzialmente hanno la libertà di guidare completamente l'interfaccia utente e monitorare tutto ciò che l'utente entra. Il framework del metodo di input Android consente anche messaggistica istantanea arbitraria di terze parti, quindi è necessario prestare attenzione a limitare la selezione e le interazioni.
Ecco alcuni punti chiave sull'architettura di sicurezza alla base del FMI:
<ul><li>
Solo il sistema può accedere direttamente all'interfaccia di InputMethod un IME tramite l'autorizzazione android.Manifest.permission#BIND_INPUT_METHOD . Questa operazione viene applicata nel sistema non eseguendo l'associazione a un servizio del metodo di input che non richiede questa autorizzazione, pertanto il sistema può garantire che nessun altro client non attendibile acceda al metodo di input corrente al di fuori del relativo controllo.
<li>
Ci possono essere molti processi client del FMI, ma solo uno può essere attivo alla volta. I client inattivi non possono interagire con parti chiave del FMI tramite i meccanismi descritti di seguito.
<li>
Ai client di un metodo di input viene concesso l'accesso solo alla relativa InputMethodSession interfaccia. Viene creata un'istanza di questa interfaccia per ogni client e solo le chiamate dalla sessione associata al client attivo verranno elaborate dall'IME corrente. Questa operazione viene applicata da android.inputmethodservice.AbstractInputMethodService per le normali messaggistica istantanea, ma deve essere gestita in modo esplicito da un IME che sta personalizzando l'implementazione non elaborata InputMethodSession .
<li>
Solo il client InputConnection attivo accetterà le operazioni. L'FMI indica a ogni processo client se è attivo e il framework impone che le chiamate inattive a InputConnection corrente verranno ignorate. In questo modo, l'IME corrente può recapitare solo gli eventi e le modifiche di testo all'interfaccia utente che l'utente vede come attivo.
<li>
Un IME non può mai interagire con un InputConnection mentre lo schermo è spento. Questa operazione viene applicata rendendo inattivi tutti i client mentre lo schermo è spento e impedisce agli imes non valido di guidare l'interfaccia utente quando l'utente non è in grado di riconoscerne il comportamento.
<li>
Un'applicazione client può chiedere che il sistema consenti all'utente di selezionare un nuovo IME, ma non può passare a livello di codice a se stesso. In questo modo si evita che le applicazioni dannose passino all'IME dell'utente, che rimane in esecuzione quando l'utente si sposta da un'altra applicazione. Un IME, d'altra parte, <em>è< autorizzato a> passare a livello di codice il sistema a un altro IME, poiché ha già il controllo completo dell'input dell'utente.
<li>
L'utente deve abilitare in modo esplicito un nuovo IME nelle impostazioni prima di poterlo passare, per confermare con il sistema che lo conosce e vuole renderlo disponibile per l'uso.
</ul>
Se l'app è destinata ad Android 11 (livello API 30) o versione successiva, i metodi in questa classe restituiscono un risultato filtrato in base alle regole di visibilità del pacchetto, ad eccezione dell'IME attualmente connesso. Le app che hanno una query per visualizzare InputMethod#SERVICE_INTERFACE tutti gli IMEs.
Documentazione java per android.view.inputmethod.InputMethodManager.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Campi
| Nome | Descrizione |
|---|---|
| HandwritingDelegateFlagHomeDelegatorAllowed |
Obsoleti.
Flag che indica che le visualizzazioni dalla schermata iniziale predefinita ( |
| ShowForced |
Flag per |
| ShowImplicit |
Obsoleti.
Flag per |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| CurrentInputMethodInfo |
Restituisce l'oggetto |
| CurrentInputMethodSubtype |
Restituisce il sottotipo del metodo di input corrente. |
| EnabledInputMethodList |
Restituisce l'elenco dei metodi di input abilitati. |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| InputMethodList |
Restituisce l'elenco dei metodi di input installati. |
| IsAcceptingText |
Restituisce |
| IsActive |
Restituisce |
| IsConnectionlessStylusHandwritingAvailable |
Restituisce |
| IsFullscreenMode |
Consente di determinare se il metodo di input collegato è in esecuzione in modalità schermo intero. |
| IsInputMethodSuppressingSpellChecker |
Restituisce |
| IsStylusHandwritingAvailable |
Restituisce |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniPeerMembers |
API di sistema centrale per l'architettura generale del framework del metodo di input (IMF), che arbitra l'interazione tra le applicazioni e il metodo di input corrente. |
| LastInputMethodSubtype |
Restituisce l'ultimo oggetto utilizzato nella cronologia |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| ShortcutInputMethodsAndSubtypes |
Restituisce una mappa di tutte le informazioni sul metodo di input del collegamento e i relativi sottotipi. |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
Metodi
| Nome | Descrizione |
|---|---|
| AcceptStylusHandwritingDelegation(View, String, HandwritingDelegateFlag, IExecutor, IConsumer) |
Accetta e avvia una sessione di grafia dello stilo nella visualizzazione delegata, se la delega di avvio della grafia è stata richiesta in precedenza utilizzando |
| AcceptStylusHandwritingDelegation(View, String, IExecutor, IConsumer) |
Accetta e avvia una sessione di grafia dello stilo nella visualizzazione delegata, se la delega di avvio della grafia è stata richiesta in precedenza utilizzando |
| AcceptStylusHandwritingDelegation(View, String) |
Accetta e avvia una sessione di grafia dello stilo nella visualizzazione delegata, se la delega di avvio della grafia è stata richiesta in precedenza utilizzando |
| AcceptStylusHandwritingDelegation(View) |
Accetta e avvia una sessione di grafia dello stilo nella visualizzazione delegata, se la delega di avvio della grafia è stata richiesta in precedenza tramite |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| DispatchKeyEventFromInputMethod(View, KeyEvent) |
Fornisce l'implementazione predefinita di |
| DisplayCompletions(View, CompletionInfo[]) | |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| FromContext(Context) |
API di sistema centrale per l'architettura generale del framework del metodo di input (IMF), che arbitra l'interazione tra le applicazioni e il metodo di input corrente. |
| GetEnabledInputMethodSubtypeList(InputMethodInfo, Boolean) |
Restituisce un elenco di sottotipi del metodo di input abilitati per le informazioni sul metodo di input specificate. |
| GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
| HideSoftInputFromInputMethod(IBinder, HideSoftInputFlags) |
Chiudere o nascondere l'area di input soft del metodo di input, in modo che l'utente non lo veda più o possa interagire con esso. |
| HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver) |
Richiedere di nascondere la finestra di input soft dal contesto della finestra che attualmente accetta l'input. |
| HideSoftInputFromWindow(IBinder, HideSoftInputFlags) |
Sinonimo di |
| HideStatusIcon(IBinder) |
Questo membro è deprecato. |
| InvalidateInput(View) |
Fornisce un suggerimento al sistema che il testo associato a |
| InvokeIsActive(View) |
Restituisce |
| IsWatchingCursor(View) |
Obsoleti.
Restituisce true se il metodo di input corrente desidera controllare la posizione del cursore dell'editor di input nella relativa finestra. |
| JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| PrepareStylusHandwritingDelegation(View, String) |
Prepara la delega dell'avvio della sessione di grafia dello stilo a un editor diverso in una finestra diversa in un pacchetto diverso rispetto alla visualizzazione in cui è stato rilevato il tratto iniziale della grafia. |
| PrepareStylusHandwritingDelegation(View) |
Prepara la delega della sessione di grafia dello stilo iniziale a un editor diverso nella stessa finestra o in una finestra diversa rispetto alla visualizzazione in cui è stato rilevato il tratto iniziale della grafia. |
| RestartInput(View) |
Se il metodo di input è attualmente connesso alla visualizzazione specificata, riavviarlo con il nuovo contenuto. |
| SendAppPrivateCommand(View, String, Bundle) |
Chiamare |
| SetAdditionalInputMethodSubtypes(String, InputMethodSubtype[]) |
Impostare sottotipi di metodo di input aggiuntivi. |
| SetCurrentInputMethodSubtype(InputMethodSubtype) |
Passare a un nuovo sottotipo del metodo di input corrente. |
| SetExplicitlyEnabledInputMethodSubtypes(String, Int32[]) |
Aggiorna l'elenco di abilitato in modo esplicito |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| SetInputMethod(IBinder, String) |
Forzare il passaggio a un nuovo componente del metodo di input. |
| SetInputMethodAndSubtype(IBinder, String, InputMethodSubtype) |
Forzare il passaggio a un nuovo metodo di input e un sottotipo. |
| ShouldOfferSwitchingToNextInputMethod(IBinder) |
Restituisce true se l'IME corrente deve offrire agli utenti modi per passare a un metodo di input successivo (e. |
| ShowInputMethodAndSubtypeEnabler(String) |
Mostra le impostazioni per abilitare i sottotipi del metodo di input specificato. |
| ShowInputMethodPicker() |
Mostra finestra popup selezione IME. |
| ShowSoftInput(View, ShowFlags, ResultReceiver) |
Richiedere in modo esplicito che l'area di input soft del metodo di input corrente venga visualizzata all'utente, se necessario. |
| ShowSoftInput(View, ShowFlags) |
Sinonimo di |
| ShowSoftInputFromInputMethod(IBinder, ShowFlags) |
Mostra l'area di input software del metodo di input, in modo che l'utente visualizzi la finestra del metodo di input e possa interagire con essa. |
| ShowStatusIcon(IBinder, String, Int32) |
Questo membro è deprecato. |
| StartConnectionlessStylusHandwriting(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback) |
Avvia una sessione di grafia senza connessione. |
| StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, IExecutor, IConnectionlessHandwritingCallback) |
Avvia una sessione di grafia senza stilo senza connessione (vedere |
| StartConnectionlessStylusHandwritingForDelegation(View, CursorAnchorInfo, String, IExecutor, IConnectionlessHandwritingCallback) |
Avvia una sessione di grafia senza stilo senza connessione (vedere |
| StartStylusHandwriting(View) |
Avviare la sessione di grafia dello stilo. |
| SwitchToLastInputMethod(IBinder) |
Forzare il passaggio all'ultimo metodo di input usato e al sottotipo. |
| SwitchToNextInputMethod(IBinder, Boolean) |
Forzare il passaggio al metodo di input successivo e al sottotipo. |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToggleSoftInput(ShowFlags, HideSoftInputFlags) |
Questo metodo attiva o disattiva la visualizzazione della finestra del metodo di input. |
| ToggleSoftInputFromWindow(IBinder, ShowSoftInputFlags, HideSoftInputFlags) |
Questo metodo attiva o disattiva la visualizzazione della finestra del metodo di input. |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| UpdateCursor(View, Int32, Int32, Int32, Int32) |
Obsoleti.
Segnala la posizione corrente del cursore nella relativa finestra. |
| UpdateCursorAnchorInfo(View, CursorAnchorInfo) |
Segnala la modifica posizionale del punto di inserimento del testo e/o dei caratteri nella stringa di composizione. |
| UpdateExtractedText(View, Int32, ExtractedText) | |
| UpdateSelection(View, Int32, Int32, Int32, Int32) |
Segnala l'intervallo di selezione corrente. |
| ViewClicked(View) |
Notifica all'evento quando l'utente ha toccato o fatto clic sulla visualizzazione testo. |
| Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
| Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Notifica al runtime di interoperabilità che il peer gestito è stato eliminato. (Ereditato da Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito. (Ereditato da Object) |
| IJavaPeerable.Finalized() |
Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato. (Ereditato da Object) |
| IJavaPeerable.JniManagedPeerState |
Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI. (Ereditato da Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Imposta il codice hash dell'identità di interoperabilità per questo Java peer. (Ereditato da Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Imposta lo stato peer gestito e JNI per questo peer Java. (Ereditato da Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Imposta il riferimento all'oggetto JNI usato da questo peer gestito. (Ereditato da Object) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
API di sistema centrale per l'architettura generale del framework del metodo di input (IMF), che arbitra l'interazione tra le applicazioni e il metodo di input corrente. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |