Share via


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부터 시스템은 애플리케이션이 이 클래스를 직접 구현하지만 다음 방법 중 하나 이상이 구현되지 않는 상황을 처리할 수 있습니다.

<에 도입된 android.os.Build.VERSION_CODES#GINGERBREADul><li>#getSelectedText(int)입니다.</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(입력 메서드 엔진)와 편집기의 시너지 효과의 결과입니다. IME는 소프트웨어 키보드, 필기 인터페이스, 이모지 팔레트, 음성 텍스트 변환 엔진 등이 될 수 있습니다. 일반적으로 지정된 Android 디바이스에 여러 IME가 설치되어 있습니다. Android에서 IME는 를 확장 android.inputmethodservice.InputMethodService합니다. IME를 만드는 방법에 대한 자세한 내용은 입력 메서드 만들기 가이드를 참조하세요.

편집기는 텍스트를 수신하고 표시하는 구성 요소입니다. 일반적으로 instance 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>커서, 선택 및 컴퍼지션</h3>

Android에서는 커서와 선택 항목이 하나이고 동일합니다. "커서"는 크기가 0인 선택 영역의 특수한 경우일 뿐입니다. 따라서 이 설명서에서는 서로 바꿔서 사용합니다. "커서 앞에" 동작하는 모든 메서드는 선택 영역이 있는 경우 선택 시작 전에 작동하고 "커서 뒤"로 작동하는 메서드는 선택 영역이 끝난 후 작동합니다.

편집기는 표준 버전 위젯처럼 현재 "작성 중" 영역을 추적할 수 있어야 합니다. 컴퍼지션은 특정 스타일로 표시됩니다. 를 참조하세요 android.text.Spanned#SPAN_COMPOSING. IME는 이를 사용하여 사용자가 현재 포커스가 있는 텍스트의 일부를 추적하고 , InputConnection#setComposingRegion(int, int)InputConnection#finishComposingText()를 사용하여 InputConnection#setComposingText(CharSequence, int)편집기와 상호 작용할 수 있습니다. 구성 영역과 선택 영역은 서로 완전히 독립적이며, IME는 적합하게 보이더라도 사용할 수 있습니다.

에 대한 Java 설명서입니다 android.view.inputmethod.InputConnection.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
Handler

InputConnection 인터페이스는 입력을 InputMethod 수신하는 애플리케이션에 대한 통신 채널입니다.

JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

BeginBatchEdit()

편집기 작업의 일괄 처리를 시작한다고 편집기에게 알릴 수 있습니다.

ClearMetaKeyStates(MetaKeyStates)

지정된 입력 연결에서 지정된 메타 키 누름 상태를 지웁니다.

CloseConnection()

시스템이 입력 메서드와 애플리케이션 간의 연결을 무효화하려고 했음을 알리기 위해 시스템에서 최대 한 번만 호출합니다.

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

instance 삭제되었을 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
EndBatchEdit()

이전에 로 시작된 일괄 처리 편집을 완료했음을 편집기에게 #beginBatchEdit()알립니다.

Finalized()

instance 완료되면 호출됩니다.

(다음에서 상속됨 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)

입력 메서드에 의해 호출되어 지정된 bounds에 의해 또는 그 근처에 있는 텍스트 범위에 대해 을 요청 TextBoundsInfo 합니다.

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 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 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 수신하는 애플리케이션에 대한 통신 채널입니다.

적용 대상