言語

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>#getSelectedText(int)liandroid.os.Build.VERSION_CODES#GINGERBREAD<>.< で導入された /li>#setComposingRegion(int, int)liandroid.os.Build.VERSION_CODES#GINGERBREAD</li><li>#commitCorrection(CorrectionInfo)android.os.Build.VERSION_CODES#HONEYCOMB.< で導入されました>.< で導入された /li>#requestCursorUpdates(int)liandroid.os.Build.VERSION_CODES#LOLLIPOP<>.< で導入された /li>#deleteSurroundingTextInCodePoints(int, int)liandroid.os.Build.VERSION_CODES#N<>.< で導入された /li>#getHandler()liandroid.os.Build.VERSION_CODES#N<>.< で導入された /li>#closeConnection()liandroid.os.Build.VERSION_CODES#N<>.< で導入された /li>#commitContent(InputContentInfo, int, Bundle)liandroid.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 がテキストの変更の唯一のソースではない可能性があることを思い出してください。送信するデータではできるだけ保守的に、受信したデータではできるだけ自由にしてください。

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

<h3>Cursors,selections and compositions</h3>

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

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

Javaドキュメント。

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

プロパティ

名前 説明
Handle

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

(継承元 IJavaObject)
Handler

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

JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

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

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

名前 説明
BeginBatchEdit()

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

ClearMetaKeyStates(MetaKeyStates)

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

CloseConnection()

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

CommitCompletion(CompletionInfo)

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

CommitContent(InputContentInfo, InputContentFlags, Bundle)

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

CommitCorrection(CorrectionInfo)

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

CommitText(ICharSequence, Int32, TextAttribute)

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

CommitText(ICharSequence, Int32)

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

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</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, Int32)

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

RequestCursorUpdates(Int32)

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

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

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

SendKeyEvent(KeyEvent)

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

SetComposingRegion(Int32, Int32, TextAttribute)

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

SetComposingRegion(Int32, Int32)

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

SetComposingText(ICharSequence, Int32, TextAttribute)

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

SetComposingText(ICharSequence, Int32)

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

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)

拡張メソッド

名前 説明
CommitText(IInputConnection, String, Int32, TextAttribute)

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

CommitText(IInputConnection, String, Int32)

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

GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

GetSelectedText(IInputConnection, GetTextFlags)

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

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

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

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

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

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

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

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

SetComposingText(IInputConnection, String, Int32, TextAttribute)

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

SetComposingText(IInputConnection, String, Int32)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象