IInputConnection インターフェイス

定義

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

[Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")]
public interface IInputConnection : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")>]
type IInputConnection = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
実装

注釈

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。 これは、カーソルの周囲のテキストの読み取り、テキスト ボックスへのテキストのコミット、アプリケーションへの生のキー イベントの送信などを実行するために使用されます。

API レベル android.os.Build.VERSION_CODES#Nから開始すると、システムは、アプリケーションがこのクラスを直接実装するが、次の 1 つ以上のメソッドが実装されていない状況に対処できます。

<で導入された ul><li>#getSelectedText(int)。<android.os.Build.VERSION_CODES#GINGERBREADで導入された /li><li>#setComposingRegion(int, int)。<android.os.Build.VERSION_CODES#GINGERBREADで導入された /li><li>#commitCorrection(CorrectionInfo)。<android.os.Build.VERSION_CODES#HONEYCOMBで導入された /li><li>#requestCursorUpdates(int)。<android.os.Build.VERSION_CODES#LOLLIPOPで導入された /li><li>#deleteSurroundingTextInCodePoints(int, int)。<android.os.Build.VERSION_CODES#Nで導入された /li><li>#getHandler()。<android.os.Build.VERSION_CODES#Nで導入された /li><li>#closeConnection()。<android.os.Build.VERSION_CODES#Nで導入された /li><li>#commitContent(InputContentInfo, int, Bundle)。<android.os.Build.VERSION_CODES#N_MR1/li></ul>

<h3>IME またはエディター<の実装/h3>

テキスト入力は、入力メソッド エンジン (IME) とエディターという 2 つの重要なコンポーネントの相乗効果の結果です。 IME には、ソフトウェア キーボード、手書きインターフェイス、絵文字パレット、音声テキスト変換エンジンなどがあります。 通常、特定の Android デバイスには複数の IME がインストールされます。 Android では、IME は を拡張 android.inputmethodservice.InputMethodServiceします。 IME の作成方法の詳細については、「 入力方法の作成 」ガイドを参照してください。

エディターは、テキストを受け取って表示するコンポーネントです。 通常、これは android.widget.EditText インスタンスですが、アプリケーションによっては、さまざまな理由で独自のエディターを実装することを選択する場合があります。 これは大規模で複雑なタスクであり、これを行うアプリケーションでは、Android の標準の EditText 動作と動作が一致していることを確認する必要があります。 エディターは、IME と対話し、この InputConnection インターフェイスを介してコマンドを受信し、 を介してコマンドを送信する android.view.inputmethod.InputMethodManager必要があります。 エディターは、独自の入力接続を返すために を実装 android.view.View#onCreateInputConnection(EditorInfo) することから始める必要があります。

独自の IME を実装する場合は、このインターフェイスの メソッドを呼び出してアプリケーションを操作する必要があります。 ブラウザやリッチテキストエディタなど、さまざまなアプリケーションでIMEをテストしてください。 IME がテキストの変更の唯一のソースではない可能性があることを思い出し、送信するデータではできるだけ保守的に、受信したデータではできるだけ自由にしてください。

独自のエディターを実装する場合は、 のサブクラス BaseInputConnection を提供して、IME のコマンドに応答する必要があります。 動作が大きく異なる可能性がある限り多くの IM を使用してエディターをテストしてください。 また、入力要件が異なる場合があるため、CJK 言語やアラビア語などの右から左の言語など、さまざまな言語でテストしてください。 特定の呼び出しに採用する必要がある動作が不明な場合は、最新の Android バージョンの既定の TextView 実装を模倣してください。また、そこからドリフトすることにした場合は、テキスト エディターの動作の不整合がユーザーによってほとんど普遍的に悪いものとして感じられることを慎重に検討してください。

<h3>カーソル、選択項目、コンポジション</h3>

Android では、カーソルと選択範囲は 1 つと同じです。 "cursor" は、サイズが 0 の選択の特殊なケースにすぎません。 そのため、このドキュメントではそれらを同じ意味で使用します。 "カーソルの前" を動作するメソッドは、ある場合は選択範囲の開始前に動作し、"カーソルの後" を動作するメソッドは、選択範囲の終了後に動作します。

エディターは、標準エディションのウィジェットのように、現在 "作成中" リージョンを追跡できる必要があります。 コンポジションは特定のスタイルでマークされています。 を参照してください android.text.Spanned#SPAN_COMPOSING。 IME はこれを使用して、ユーザーが現在フォーカスしているテキストの部分を追跡し、 を使用してInputConnection#setComposingText(CharSequence, int)InputConnection#setComposingRegion(int, int)InputConnection#finishComposingText()エディターと対話するのに役立ちます。 作成領域と選択範囲は互いに完全に独立しており、IME ではそれらを使用できますが、最適です。

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

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

プロパティ

Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
Handler

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

JniIdentityHashCode

ラップされたインスタンスの の java.lang.System.identityHashCode() 値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。

(継承元 IJavaPeerable)

メソッド

BeginBatchEdit()

エディター操作のバッチを開始していることをエディターに伝えます。

ClearMetaKeyStates(MetaKeyStates)

指定された入力接続で、指定されたメタ キーが押された状態をクリアします。

CloseConnection()

システムが入力メソッドとアプリケーション間の接続を無効にしようとしていることを通知するために、システムによって最大 1 回だけ呼び出されます。

CommitCompletion(CompletionInfo)

ユーザーが以前に または InputMethodManager#displayCompletions InputMethodManager#displayCompletions(View, CompletionInfo[])に報告した候補から選択した完了をInputMethodSession#displayCompletions InputMethodSession#displayCompletions(CompletionInfo[])コミットします。

CommitContent(InputContentInfo, InputContentFlags, Bundle)

PNG イメージなどのコンテンツをエディターにコミットするために、入力メソッドによって呼び出されます。

CommitCorrection(CorrectionInfo)

生ユーザーの入力に対して自動的に実行される修正をコミットします。

CommitText(ICharSequence, Int32)

テキストをテキスト ボックスにコミットし、新しいカーソル位置を設定します。

CommitText(ICharSequence, Int32, TextAttribute)

InputConnection#commitText(CharSequence, int)バリアント。

CommitText(String, Int32, TextAttribute)

InputConnection#commitText(CharSequence, int)バリアント。

DeleteSurroundingText(Int32, Int32)

<現在のカーソル位置の前にあるテキストの var>beforeLength</var> 文字を削除し、選択範囲を除き、現在のカーソル位置の後にあるテキストの var>afterLength</var> 文字を削除<します。

DeleteSurroundingTextInCodePoints(Int32, Int32)

#deleteSurroundingText(int, int)バリアント。

Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 を呼び出 Dispose()します。それ以外の場合は何も行いません。

(継承元 IJavaPeerable)
EndBatchEdit()

で開始された #beginBatchEdit()バッチ編集が完了したことをエディターに伝えます。

Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
FinishComposingText()

テキスト エディターで、現在アクティブな作成テキストが完了します。

GetCursorCapsMode(CapitalizationMode)

テキスト内の現在のカーソル位置で有効な現在の大文字と小文字の設定モードを取得します。

GetExtractedText(ExtractedTextRequest, GetTextFlags)

入力接続のエディターで現在のテキストを取得し、その変更を監視します。

GetSelectedTextFormatted(GetTextFlags)

選択したテキスト (存在する場合) を取得します。

GetSurroundingText(Int32, Int32, Int32)

現在のカーソル <の周囲のテキストを取得します。カーソルの前のテキストの var>beforeLength</var> 文字 (選択範囲の開始)、 <カーソルの後のテキストの var>afterLength</var> 文字 (選択範囲の末尾)、および選択したすべてのテキストを取得します。

GetTextAfterCursorFormatted(Int32, GetTextFlags)

現在のカーソル位置の後のテキストの var>n</var> 文字を取得<します。

GetTextBeforeCursorFormatted(Int32, GetTextFlags)

現在のカーソル位置の前にあるテキストの var>n</var> 文字を取得<します。

PerformContextMenuAction(Int32)

フィールドに対してコンテキスト メニュー アクションを実行します。

PerformEditorAction(ImeAction)

エディターに、実行できると言ったアクションを実行してもらう。

PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer)

テキストに対して手書きのジェスチャを実行します。

PerformPrivateCommand(String, Bundle)

入力メソッドから接続されたエディターにプライベート コマンドを送信する API。

PerformSpellCheck()

エディターで完全なコンテンツのスペル チェックを実行します。

PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal)

テキストの手書きジェスチャをプレビューします。

ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute)

エディター内の特定の範囲を推奨テキストに置き換えます。

ReplaceText(Int32, Int32, String, Int32, TextAttribute)

エディター内の特定の範囲を推奨テキストに置き換えます。

ReportFullscreenMode(Boolean)

接続されている IME が全画面表示モードと標準モードを切り替えたときに呼び出されます。

RequestCursorUpdates(Int32)

入力メソッドによって呼び出され、カーソルまたはアンカーの場所に通知するために呼び戻す InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) ようエディターに要求します。

RequestCursorUpdates(Int32, Int32)

入力メソッドによって呼び出され、カーソルまたはアンカーの場所に通知するために呼び戻す InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) ようエディターに要求します。

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

入力メソッドによって呼び出され、 TextBoundsInfo 指定 boundsされた の近くにある または でカバーされるテキストの範囲の を要求します。

SendKeyEvent(KeyEvent)

この入力接続を介して現在アタッチされているプロセスにキー イベントを送信します。

SetComposingRegion(Int32, Int32)

テキストの特定の領域を作成テキストとしてマークします。

SetComposingRegion(Int32, Int32, TextAttribute)

InputConnection#setComposingRegion(int, int)バリアント。

SetComposingText(ICharSequence, Int32)

現在作成中のテキストを指定したテキストに置き換え、新しいカーソル位置を設定します。

SetComposingText(ICharSequence, Int32, TextAttribute)

#setComposingText(CharSequence, int)バリアント。

SetComposingText(String, Int32, TextAttribute)

#setComposingText(CharSequence, int)バリアント。

SetImeConsumesInput(Boolean)

入力メソッドによって呼び出され、それ自体のすべての入力が使用されるか、使用されなくなったことを示します。

SetJniIdentityHashCode(Int32)

によって返される値を JniIdentityHashCode設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

によって返される値を PeerReference設定します。

(継承元 IJavaPeerable)
SetSelection(Int32, Int32)

テキスト エディターの選択を設定します。

TakeSnapshot()

アトミックな方法で複数のテキスト関連データのスナップショットを受け取る必要がある場合に、システムによって呼び出されます。

UnregisterFromRuntime()

ランタイムが将来 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

CommitText(IInputConnection, String, Int32)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

CommitText(IInputConnection, String, Int32, TextAttribute)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

GetSelectedText(IInputConnection, GetTextFlags)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

SetComposingText(IInputConnection, String, Int32)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

SetComposingText(IInputConnection, String, Int32, TextAttribute)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

JavaCast<TResult>(IJavaObject)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

GetJniTypeName(IJavaPeerable)

InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod 通信チャネルです。

適用対象