Condividi tramite


InputMethodManager Classe

Definizione

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à
InputMethodManager
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>

Panoramica dell'architettura< "ArchitectureOverview"><h3>>

Esistono tre parti principali coinvolte nell'architettura del framework dei metodi di input (FMI):

<ul><li> Il <gestore< di metodi di input forte>/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 che esiste 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. Viene eseguito un solo IME 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 tenere conto sono:

<ul><li> Impostare android.R.attr#inputType correttamente nelle visualizzazioni di testo modificabili, in modo che il metodo di input abbia un contesto sufficiente per aiutare l'utente a immettere testo in essi. <li> Consente di perdere spazio sullo schermo quando viene visualizzato il metodo di input. Idealmente, un'applicazione deve gestire il ridimensionamento della finestra di dimensioni inferiori, ma può basarsi sul sistema che esegue la panoramica della finestra, se necessario. È consigliabile impostare l'attributo sull'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 flessibile 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 persone rare 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 in genere viene gestita da android.inputmethodservice.InputMethodService e gli implementatori dovranno 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, pertanto è necessario prestare attenzione a limitare la selezione e le interazioni.

Ecco alcuni punti chiave sull'architettura di sicurezza dietro il FMI:

<ul><li>

Solo il sistema può accedere direttamente all'interfaccia di InputMethod un IME tramite l'autorizzazione android.Manifest.permission#BIND_INPUT_METHOD . Questo viene applicato 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 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 attraverso 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. Questo viene applicato da android.inputmethodservice.AbstractInputMethodService per le normali messaggistica istantanea, ma deve essere gestito in modo esplicito da un IME che sta personalizzando l'implementazione non elaborata InputMethodSession .

<li>

Solo il client InputConnection attivo accetterà le operazioni. Il FMI indica a ogni processo client se è attivo e il framework impone che le chiamate inattive a InputConnection corrente verranno ignorate. Ciò garantisce che l'IME corrente possa 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. Questo viene applicato rendendo tutti i client inattivi mentre lo schermo è disattivato e impedisce agli imes non valido di guidare l'interfaccia utente quando l'utente non può essere a conoscenza del suo comportamento.

<li>

Un'applicazione client può chiedere che il sistema consenta all'utente di selezionare un nuovo IME, ma non può passare a livello di codice a uno stesso. Ciò evita alle applicazioni dannose di passare l'utente al proprio IME, che rimane in esecuzione quando l'utente passa a 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 di conoscerlo e renderlo disponibile per l'uso.

</ul>

Se l'app è destinata ad Android 11 (livello API 30) o superiore, 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 tutte le messaggistica istantanea.

Documentazione java per android.view.inputmethod.InputMethodManager.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

Campi

ShowForced

Flag per #showSoftInput per indicare che l'utente ha forzato l'apertura del metodo di input ,ad esempio tramite il menu di pressione prolungata, in modo che non debba essere chiuso fino a quando non lo fanno in modo esplicito.

ShowImplicit
Obsoleti.

Flag per #showSoftInput per indicare che si tratta di una richiesta implicita per visualizzare la finestra di input, non come risultato di una richiesta diretta da parte dell'utente.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
CurrentInputMethodInfo

Restituisce l'oggetto InputMethodInfo del metodo di input attualmente selezionato (per l'utente del processo).

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 true se la visualizzazione attualmente servita accetta modifiche full-text.

IsActive

Restituisce true se una visualizzazione è attualmente attiva per il metodo di input.

IsFullscreenMode

Consente di determinare se il metodo di input collegato è in esecuzione in modalità schermo intero.

IsInputMethodSuppressingSpellChecker

Restituisce true se il metodo di input elimina il correttore ortografico del sistema.

IsStylusHandwritingAvailable

Restituisce true se l'IME attualmente selezionato supporta la grafia dello stilo & è abilitato.

JniIdentityHashCode

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.

(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 InputMethodSubtype di sistema.

PeerReference

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.

(Ereditato da Object)
ShortcutInputMethodsAndSubtypes

Restituisce una mappa di tutte le informazioni sul metodo di input del collegamento e dei 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

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 usando #prepareStylusHandwritingDelegation(View) il delegato.

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 tramite #prepareStylusHandwritingDelegation(View, String) te delegator e la vista appartiene a un pacchetto delegato specificato.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
DispatchKeyEventFromInputMethod(View, KeyEvent)

Fornisce l'implementazione predefinita di , prevista per l'invio di InputConnection#sendKeyEvent(KeyEvent)un evento di tastiera inviato dall'IME a una destinazione evento appropriata a seconda dello stato attivo specificato View e dello stato attivo corrente.

DisplayCompletions(View, CompletionInfo[])
Dispose()

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.

(Ereditato da Object)
Dispose(Boolean)

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.

(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 di 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/nascondere l'area di input flessibile del metodo di input, in modo che l'utente non lo veda più o possa interagire con esso.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags)

Sinonimo di #hideSoftInputFromWindow(IBinder, int, ResultReceiver) senza risultato: richiedere di nascondere la finestra di input flessibile dal contesto della finestra che attualmente accetta l'input.

HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver)

Richiedere di nascondere la finestra di input leggero dal contesto della finestra che attualmente accetta l'input.

HideStatusIcon(IBinder)

Metodo deprecato.

InvalidateInput(View)

Fornisce un suggerimento al sistema che il testo associato view a viene aggiornato da un elemento che non è un editor di metodi di input (IME), in modo che il sistema possa annullare qualsiasi richiesta di modifica del testo in sospeso dall'IME fino a quando non riceve il nuovo contesto di modifica, ad esempio il testo circostante fornito da InputConnection#takeSnapshot().

InvokeIsActive(View)

Restituisce true se la visualizzazione specificata è la visualizzazione attualmente attiva per il metodo di input.

IsWatchingCursor(View)
Obsoleti.

Restituisce true se il metodo di input corrente desidera watch 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 monitoraggio di questo oggetto.

(Ereditato da Object)
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.

PrepareStylusHandwritingDelegation(View, String)

Prepara la delega della sessione di grafia dello stilo iniziale a un editor diverso in una finestra diversa in un pacchetto diverso 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 InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand() sul metodo di input corrente.

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[])

Aggiornamenti l'elenco di abilitato in InputMethodSubtype modo esplicito per un determinato IME di proprietà del processo chiamante.

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)

Sinonimo di #showSoftInput(View, int, ResultReceiver) senza un ricevitore di risultati: richiedere in modo esplicito che l'area di input flessibile del metodo di input corrente venga visualizzata all'utente, se necessario.

ShowSoftInput(View, ShowFlags, ResultReceiver)

Richiedere in modo esplicito che l'area di input flessibile del metodo di input corrente venga visualizzata all'utente, se necessario.

ShowSoftInputFromInputMethod(IBinder, ShowFlags)

Mostra l'area di input flessibile del metodo di input, in modo che l'utente visualizzi la finestra del metodo di input e possa interagire con esso.

ShowStatusIcon(IBinder, String, Int32)

Metodo deprecato.

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 e al sottotipo di input successivo.

ToArray<T>()

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.

(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 in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

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.

(Ereditato da Object)
UpdateCursor(View, Int32, Int32, Int32, Int32)
Obsoleti.

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

Notificare 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 eseguendo <una>notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

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.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

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.

(Ereditato da Object)
IJavaPeerable.Finalized()

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.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

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.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo verificato 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.

GetJniTypeName(IJavaPeerable)

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.

Si applica a