スペルチェック フレームワーク

Android プラットフォームには、スペル チェッカー フレームワークが用意されており、 アプリでのスペルチェックの実装とアクセス。このフレームワークは Text Service API。

アプリでフレームワークを使用するには、 スペルチェックの session オブジェクトを生成します。入力したテキストに基づいて Session オブジェクトは単語のつづりによって生成されたスペル候補を返します。 します。

スペルチェックのライフサイクル

次の図は、スペルチェック サービスのライフサイクルを示しています。

スペルチェック サービスのライフサイクルを示す画像
図 1. スペルチェック サービス 説明します。

スペルチェックを開始するために、アプリはスペルチェックの実装を開始します。 チェッカー サービスがあります。アプリ内のクライアント(アクティビティや個々の UI など) 要素の作成、サービスにスペルチェック セッションをリクエストしてから、 して、テキストの候補を表示します。クライアントがオペレーションを終了すると、 コピーされます。必要に応じて、アプリは魔法をシャットダウンできます いつでも使用できます。

スペルチェック サービスを実装する

アプリでスペルチェック フレームワークを使用するには、スペルチェック サービスを追加してください コンポーネントが含まれています。また、 設定を管理するオプション アクティビティをアプリに追加できます。XML メタデータ ファイルを追加する テキスト チェッカー サービスを記述し、適切な要素を 追加します。

スペルチェック クラス

次のクラスを使用して、サービスとセッション オブジェクトを定義します。

  • サブクラス SpellCheckerService
    SpellCheckerService は、 Service スペルチェックのフレームワーク インターフェースです。サブクラス内で、 次のメソッドを実装します。 <ph type="x-smartling-placeholder">
    </ph>
    createSession()
    SpellCheckerService.Session オブジェクトを、 スペルのチェックを希望しています
  • 実装: SpellCheckerService.Session
    スペルチェック サービスがクライアントに提供する、 スペルチェックにテキストが渡され、候補が表示されます。この範囲内 次のメソッドを実装します。 <ph type="x-smartling-placeholder">
    </ph>
    onCreate()
    createSession()。この方法では、 SpellCheckerService.Session オブジェクト その他の詳細を表示できます。
    onGetSentenceSuggestionsMultiple()
    実際のスペルチェックを行います。このメソッドは SentenceSuggestionsInfo 文章の候補が生成されます。

    必要に応じて onCancel(), スペルチェックのキャンセル リクエストを処理します。 onGetSuggestions(), 単語の候補リクエストを処理します。または onGetSuggestionsMultiple(), 単語候補のリクエストをバッチで処理します。

  • で確認できます。
<ph type="x-smartling-placeholder">

スペルチェックのマニフェストとメタデータ

コードに加えて、適切なマニフェスト ファイルとメタデータを提供 ファイルが作成されます。

マニフェスト ファイルは、インフラストラクチャのアプリ、サービス、 設定の制御を示しています。次の例をご覧ください。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.samplespellcheckerservice" >
    <application
        android:label="@string/app_name" >
        <service
            android:label="@string/app_name"
            android:name=".SampleSpellCheckerService"
            android:permission="android.permission.BIND_TEXT_SERVICE" >
            <intent-filter >
                <action android:name="android.service.textservice.SpellCheckerService" />
            </intent-filter>

            <meta-data
                android:name="android.view.textservice.scs"
                android:resource="@xml/spellchecker" />
        </service>

        <activity
            android:label="@string/sample_settings"
            android:name="SpellCheckerSettingsActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    </application>
</manifest>

サービスを使用するコンポーネントは権限をリクエストする必要がある BIND_TEXT_SERVICE システムのみがサービスにバインドされるようにします。サービスの定義 spellchecker.xml メタデータ ファイルも指定します。 次のセクションで説明します。

メタデータ ファイル spellchecker.xml には次のものが含まれます。 XML:

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/spellchecker_name"
        android:settingsActivity="com.example.SpellCheckerSettingsActivity">
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="en”
    />
    <subtype
            android:label="@string/subtype_generic"
            android:subtypeLocale="fr”
    />
</spell-checker>

メタデータは、スペルチェックが制御に使用するアクティビティを指定する 設定。また、スペルチェックのサブタイプも定義します。この例では、 サブタイプは、スペルチェックが処理できる言語 / 地域を定義します。

クライアントからスペルチェック サービスにアクセスする

使用するアプリ TextViewEditText ビューは自動的にスペルチェックの対象になります。これは、TextView 自動的にスペルチェックが使用されます。

EditText でスペルチェックが自動的に有効になる仕組みを示す画像
図 2. Google Chat で EditText

ただし、Google Chat で 使用できます。次の図は、Kubernetes と API の間の制御のフローを スペルチェック サービスを使用する場合:

スペルチェック サービスとのやり取りの図を示す画像
図 3. スペルチェックとのやり取り あります。

LatinIME インプット メソッド エディタをご覧ください。 役立ちます。