InputMethodManager クラス

定義

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

[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
継承
InputMethodManager
属性

注釈

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

ここで説明するトピック: <ol><li>アーキテクチャの概要<li>Applications<li>Input Methods<li>Security</ol>

"ArchitectureOverview"><h3>アーキテクチャの概要</h3>

入力方法フレームワーク (IMF) アーキテクチャには、次の 3 つの主要な当事者が関係しています。

<ul><li> この <クラスで表される強力な>入力メソッド マネージャー</strong> は、他のすべての部分間の相互作用を管理するシステムの中心点です。 ここでは、各アプリケーション コンテキストに存在し、すべてのプロセス間の相互作用を管理するグローバル システム サービスと通信するクライアント側 API として表されます。 <li> 強力な><入力方法 (IME)</strong> は、ユーザーがテキストを生成できるようにする特定の対話モデルを実装します。 システムは、使用中の現在の入力メソッドにバインドされ、作成されて実行され、UI を非表示にして表示するタイミングを通知します。 一度に実行されている IME は 1 つだけです。 <li> 入力フォーカスと IME の状態を制御するための入力メソッド マネージャーを使用した複数 <の強力>なクライアント アプリケーション</強力> なアービトレーション。 このようなクライアントは一度に 1 つだけアクティブになります (IME を操作しています)。 </ul>

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

ほとんどの場合、標準 android.widget.TextView またはそのサブクラスを使用しているアプリケーションでは、ソフト入力メソッドを適切に動作させるために行う必要はほとんどありません。 注意する必要があるメインは次のとおりです。

<ul><li> ユーザーがテキストを android.R.attr#inputType 入力するのに十分なコンテキストを入力できるように、編集可能なテキスト ビューで を適切に設定します。 <li> 入力方法が表示されているときに画面領域が失われるとうまく対処します。 理想的には、アプリケーションはウィンドウのサイズを小さく処理する必要がありますが、必要に応じてウィンドウのパンを実行するシステムに依存できます。 アクティビティの 属性、または作成したウィンドウの対応する値を設定 android.R.attr#windowSoftInputMode して、パンまたはサイズ変更のどちらを行うかをシステムが判断できるようにする必要があります (これは自動的に判断されますが、間違っている可能性があります)。 <li> 同じ android.R.attr#windowSoftInputMode 属性を使用して、ウィンドウの優先ソフト入力状態 (開いている、閉じているなど) を制御することもできます。 </ul>

入力領域の表示または非表示、ユーザーによる入力方法の選択など、IMF とその IME と直接やり取りするために、こちらの API を使用して、よりきめ細かい制御を利用できます。

独自のテキスト エディターを作成しているまれなユーザーの場合は、IME がエディターと対話できるように、独自InputConnectionのインターフェイスの新しいインスタンスを返すために を実装android.view.View#onCreateInputConnectionする必要があります。

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

入力メソッド (IME) は、 として android.app.Service実装され、通常は から android.inputmethodservice.InputMethodService派生します。 コア InputMethod インターフェイスを提供する必要がありますが、これは通常によって android.inputmethodservice.InputMethodService 処理され、実装者はそこで上位レベルの API のみを処理する必要があります。

IME の実装の android.inputmethodservice.InputMethodService 詳細については、 クラスを参照してください。

"Security"><h3>Security</h3>

入力メソッドには、基本的に UI を完全に操作し、ユーザーが入力したすべてのものを監視する自由があるため、多くのセキュリティの問題が関連付けられています。 Android 入力メソッド フレームワークでは、任意のサード パーティの IME も許可されるため、選択と対話を制限するように注意する必要があります。

IMF の背後にあるセキュリティ アーキテクチャに関するいくつかの重要なポイントを次に示します。

<ul><li>

アクセス許可を介して android.Manifest.permission#BIND_INPUT_METHOD IME InputMethod のインターフェイスに直接アクセスできるのは、システムだけです。 これは、このアクセス許可を必要としない入力メソッド サービスにバインドしないことによってシステムで適用されるため、システムは、信頼されていない他のクライアントがその制御外の現在の入力メソッドにアクセスしていないことを保証できます。

<李>

IMF のクライアント プロセスは多数あるかもしれませんが、一度にアクティブにできるのは 1 つだけです。 非アクティブなクライアントは、以下に説明するメカニズムを通じてIMFの主要部分と対話することはできません。

<李>

入力メソッドのクライアントには、その InputMethodSession インターフェイスへのアクセスのみが付与されます。 このインターフェイスの 1 つのインスタンスがクライアントごとに作成され、アクティブなクライアントに関連付けられているセッションからの呼び出しのみが現在の IME によって処理されます。 これは通常の IME に対して によって android.inputmethodservice.AbstractInputMethodService 適用されますが、生 InputMethodSession の実装をカスタマイズする IME によって明示的に処理される必要があります。

<李>

アクティブなクライアント InputConnection のみが操作を受け入れます。 IMF は各クライアント プロセスにアクティブかどうかを通知し、非アクティブなプロセスでは現在の InputConnection への呼び出しは無視されるようにフレームワークによって強制されます。 これにより、現在の IME は、ユーザーがフォーカスしていると見なす UI にのみイベントとテキスト編集を配信できます。

<李>

画面がオフになっている間、IME は と対話 InputConnection できません。 これは、画面がオフになっている間にすべてのクライアントを非アクティブにすることで適用され、ユーザーがその動作を認識できないときに、不適切な IME によって UI が駆動されるのを防ぎます。

<李>

クライアント アプリケーションは、ユーザーが新しい IME を選択できるようにシステムに要求できますが、プログラムで自身に切り替えすることはできません。 これにより、悪意のあるアプリケーションがユーザーを独自の IME に切り替えるのを回避できます。これは、ユーザーが別のアプリケーションに移動したときに実行されたままです。 一方<、IME は既にユーザー入力を完全に制御しているため、em>is/em> は<プログラムによってシステムを別の IME に切り替えることができます。

<李>

ユーザーは、設定で新しい IME を明示的に有効にしてから切り替える必要があります。この設定をシステムで確認し、使用できるようにする必要があります。

</ul>

アプリが Android 11 (API レベル 30) 以上を対象とする場合、このクラスのメソッドはそれぞれ、現在接続されている IME を除き、パッケージの可視性の規則によってフィルター処理された結果を返します。 に対するクエリを InputMethod#SERVICE_INTERFACE 持つアプリには、すべての IME が表示されます。

の Java ドキュメント android.view.inputmethod.InputMethodManager

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

フィールド

ShowForced

ユーザーが入力メソッドを (長押しメニューなど) 強制的に開いたので、明示的に開くまで閉じないようにすることを示す の #showSoftInput フラグ。

ShowImplicit
古い.

ユーザーによる直接要求の結果ではなく、入力ウィンドウを表示する暗黙的な要求であることを示す の #showSoftInput フラグ。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
CurrentInputMethodInfo

InputMethodInfo(プロセスのユーザーの) 現在選択されている入力メソッドの を返します。

CurrentInputMethodSubtype

現在の入力メソッドのサブタイプを返します。

EnabledInputMethodList

有効な入力メソッドの一覧を返します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
InputMethodList

インストールされている入力メソッドの一覧を返します。

IsAcceptingText

現在提供されているビューがフルテキスト編集を受け入れている場合は、 を返 true します。

IsActive

入力メソッドに対して現在アクティブなビューがある場合は を返 true します。

IsFullscreenMode

添付された入力メソッドが全画面表示モードで実行されているかどうかを検出できます。

IsInputMethodSuppressingSpellChecker

入力メソッドがシステム スペル チェックを抑制している場合は を返 true します。

IsStylusHandwritingAvailable

true現在選択されている IME でスタイラス手書き & が有効になっている場合は を返します。

JniIdentityHashCode

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
JniPeerMembers

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

LastInputMethodSubtype

システム履歴で最後に使用された InputMethodSubtype を返します。

PeerReference

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
ShortcutInputMethodsAndSubtypes

すべてのショートカット入力メソッド情報とそのサブタイプのマップを返します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)

メソッド

AcceptStylusHandwritingDelegation(View)

委任元から を使用して #prepareStylusHandwritingDelegation(View) 手書き開始委任が以前に要求された場合は、デリゲート ビューでスタイラス手書きセッションを受け入れて開始します。

AcceptStylusHandwritingDelegation(View, String)

te delegator から を使用して #prepareStylusHandwritingDelegation(View, String) 手書き開始委任が以前に要求され、ビューが指定されたデリゲート パッケージに属している場合は、デリゲート ビューでスタイラス手書きセッションを受け入れて開始します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
DispatchKeyEventFromInputMethod(View, KeyEvent)

の既定の InputConnection#sendKeyEvent(KeyEvent)実装を提供します。これは、指定されたと現在のフォーカスの状態に応じて、IME から適切なイベント ターゲットに View 送信されるキーボード イベントをディスパッチすることが想定されます。

DisplayCompletions(View, CompletionInfo[])
Dispose()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
Dispose(Boolean)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
FromContext(Context)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

GetEnabledInputMethodSubtypeList(InputMethodInfo, Boolean)

指定した入力メソッド情報に対して有効な入力メソッド サブタイプの一覧を返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
HideSoftInputFromInputMethod(IBinder, HideSoftInputFlags)

入力メソッドのソフト入力領域を閉じる/非表示にして、ユーザーが入力メソッドを表示したり操作したりできないようにします。

HideSoftInputFromWindow(IBinder, HideSoftInputFlags)

結果のない の #hideSoftInputFromWindow(IBinder, int, ResultReceiver) シノニム: 現在入力を受け入れているウィンドウのコンテキストからソフト入力ウィンドウを非表示にする要求。

HideSoftInputFromWindow(IBinder, HideSoftInputFlags, ResultReceiver)

現在入力を受け入れているウィンドウのコンテキストからソフト入力ウィンドウを非表示にするように要求します。

HideStatusIcon(IBinder)

このメンバーは非推奨とされます。

InvalidateInput(View)

によって提供される周囲のテキストなどの新しい編集コンテキストを受信するまで、システムが IME から保留中のテキスト編集要求を取り消すことができるように、関連付けられている view テキストが入力メソッド エディター (IME) ではないものによって更新されるというヒントをシステムに InputConnection#takeSnapshot()提供します。

InvokeIsActive(View)

指定されたビューが入力メソッドの現在アクティブなビューである場合は を返 true します。

IsWatchingCursor(View)
古い.

現在の入力メソッドがウィンドウ内の入力エディターのカーソルの位置をwatchする場合は true を返します。

JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
PrepareStylusHandwritingDelegation(View)

最初の手書きストロークが検出されたビューと同じウィンドウまたは異なるウィンドウで、スタイラス手書きセッションを開始する別のエディターへの委任を準備します。

PrepareStylusHandwritingDelegation(View, String)

最初の手書きストロークが検出されたビューとは異なるパッケージ内の同じウィンドウまたは別のウィンドウ内の別のエディターへのスタイラス手書きセッションの開始の委任を準備します。

RestartInput(View)

入力メソッドが現在特定のビューに接続されている場合は、新しい内容で再起動します。

SendAppPrivateCommand(View, String, Bundle)

現在の Input メソッドで を呼び出します InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand()

SetAdditionalInputMethodSubtypes(String, InputMethodSubtype[])

追加の入力メソッドのサブタイプを設定します。

SetCurrentInputMethodSubtype(InputMethodSubtype)

現在の入力メソッドの新しい入力メソッド サブタイプに切り替えます。

SetExplicitlyEnabledInputMethodSubtypes(String, Int32[])

呼び出し元プロセスが所有する特定の IME に対して明示的に有効になっているInputMethodSubtypeの一覧を更新します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetInputMethod(IBinder, String)

新しい入力メソッド コンポーネントに強制的に切り替えます。

SetInputMethodAndSubtype(IBinder, String, InputMethodSubtype)

新しい入力メソッドとサブタイプに強制的に切り替えます。

ShouldOfferSwitchingToNextInputMethod(IBinder)

現在の IME がユーザーに次の入力方法に切り替える方法を提供する必要がある場合は true を返します (例:

ShowInputMethodAndSubtypeEnabler(String)

指定した入力メソッドのサブタイプを有効にするための設定を表示します。

ShowInputMethodPicker()

IME ピッカーのポップアップ ウィンドウを表示します。

ShowSoftInput(View, ShowFlags)

結果レシーバーなしの の #showSoftInput(View, int, ResultReceiver) シノニム: 必要に応じて、現在の入力メソッドのソフト入力領域をユーザーに表示するように明示的に要求します。

ShowSoftInput(View, ShowFlags, ResultReceiver)

必要に応じて、現在の入力メソッドのソフト入力領域をユーザーに表示するように明示的に要求します。

ShowSoftInputFromInputMethod(IBinder, ShowFlags)

入力メソッドのソフト入力領域を表示して、ユーザーが入力メソッド ウィンドウを表示して操作できるようにします。

ShowStatusIcon(IBinder, String, Int32)

このメンバーは非推奨とされます。

StartStylusHandwriting(View)

スタイラス手書きセッションを開始します。

SwitchToLastInputMethod(IBinder)

最後に使用した入力メソッドとサブタイプに強制的に切り替えます。

SwitchToNextInputMethod(IBinder, Boolean)

次の入力メソッドとサブタイプに強制的に切り替えます。

ToArray<T>()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
ToggleSoftInput(ShowFlags, HideSoftInputFlags)

このメソッドは、入力メソッド ウィンドウの表示を切り替えます。

ToggleSoftInputFromWindow(IBinder, ShowSoftInputFlags, HideSoftInputFlags)

このメソッドは、入力メソッド ウィンドウの表示を切り替えます。

ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
UpdateCursor(View, Int32, Int32, Int32, Int32)
古い.

ウィンドウ内の現在のカーソル位置を報告します。

UpdateCursorAnchorInfo(View, CursorAnchorInfo)

合成文字列内のテキスト挿入ポイントや文字の位置変更を報告します。

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

現在の選択範囲を報告します。

ViewClicked(View)

ユーザーがテキスト ビューをタップまたはクリックしたときにイベントに通知します。

Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.Finalized()

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

GetJniTypeName(IJavaPeerable)

アプリケーションと現在の入力方法の間の相互作用を仲裁する、全体的な入力方法フレームワーク (IMF) アーキテクチャへの中央システム API。

適用対象