Framework pemeriksa ejaan

Platform Android menawarkan kerangka kerja pemeriksa ejaan yang memungkinkan Anda menerapkan dan mengakses pemeriksaan ejaan di aplikasi Anda. Kerangka kerja ini merupakan salah satu API Layanan Teks.

Untuk menggunakan kerangka kerja di aplikasi Anda, buat layanan Android yang membuat objek session pemeriksa ejaan. Berdasarkan teks yang Anda berikan, objek session menampilkan saran ejaan yang dihasilkan oleh ejaan tersebut pemeriksa.

Siklus proses pemeriksa ejaan

Diagram berikut menunjukkan siklus proses layanan pemeriksa ejaan:

Gambar yang menunjukkan siklus proses layanan pemeriksa ejaan
Gambar 1. Layanan pemeriksa ejaan siklus proses.

Untuk memulai pemeriksaan ejaan, aplikasi Anda akan memulai penerapan ejaannya layanan pemeriksa. Klien di aplikasi Anda, seperti aktivitas atau UI individual tambahan, meminta sesi pemeriksa ejaan dari layanan, lalu menggunakan sesi untuk mendapatkan saran teks. Saat klien menghentikan operasinya, klien akan menutup sesi pemeriksa ejaannya. Jika perlu, aplikasi Anda dapat menonaktifkan ejaan tersebut layanan pemeriksa kapan saja.

Mengimplementasikan layanan pemeriksa ejaan

Untuk menggunakan framework pemeriksa ejaan di aplikasi Anda, tambahkan layanan pemeriksa ejaan yang menyertakan definisi objek sesi. Anda juga dapat menambahkan aktivitas opsional ke aplikasi Anda yang mengontrol setelan. Menambahkan file metadata XML yang menjelaskan layanan pemeriksa ejaan, dan menambahkan elemen yang sesuai untuk file manifes Anda.

Class pemeriksa ejaan

Tentukan objek layanan dan sesi dengan class berikut:

  • Subclass dari SpellCheckerService
    SpellCheckerService menerapkan metode Service dan antarmuka framework pemeriksa ejaan. Dalam {i>subclass<i} Anda, terapkan metode berikut:
    createSession()
    Metode factory yang menampilkan SpellCheckerService.Session ke klien yang ingin memeriksa ejaan.
  • Implementasi dari SpellCheckerService.Session
    Objek yang diberikan oleh layanan pemeriksa ejaan kepada klien agar dapat mereka meneruskan teks ke pemeriksa ejaan dan menerima saran. Dari dalam , implementasikan metode berikut:
    onCreate()
    Dipanggil oleh sistem untuk merespons createSession(). Dalam metode ini, Anda bisa menginisialisasi objek SpellCheckerService.Session berdasarkan lokalitas saat ini dan detail lainnya.
    onGetSentenceSuggestionsMultiple()
    Melakukan pemeriksaan ejaan yang sebenarnya. Metode ini mengembalikan array SentenceSuggestionsInfo yang berisi saran untuk kalimat yang diteruskan.

    Secara opsional, Anda dapat menerapkan onCancel(), yang menangani permintaan untuk membatalkan pemeriksaan ejaan; onGetSuggestions(), yang menangani permintaan saran kata; atau onGetSuggestionsMultiple(), yang menangani kumpulan permintaan saran kata.

Manifes dan metadata pemeriksa ejaan

Selain kode, sediakan metadata dan file manifes yang sesuai untuk pemeriksa ejaan.

File manifes mendefinisikan aplikasi, layanan, dan aktivitas untuk mengontrol setelan, seperti yang ditunjukkan pada contoh berikut:

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

Komponen yang ingin menggunakan layanan harus meminta izin BIND_TEXT_SERVICE untuk memastikan bahwa hanya sistem yang mengikat ke layanan. Definisi layanan juga menentukan file metadata spellchecker.xml, yang yang akan dijelaskan di bagian berikutnya.

File metadata spellchecker.xml berisi hal berikut 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>

Metadata menentukan aktivitas yang digunakan pemeriksa ejaan untuk mengontrol setelan. Kode ini juga menentukan subjenis untuk pemeriksa ejaan. Dalam hal ini, subtipe menentukan lokalitas yang dapat ditangani pemeriksa ejaan.

Akses layanan pemeriksa ejaan dari klien

aplikasi yang menggunakan TextView dan EditText kali dilihat secara otomatis mendapat manfaat dari pemeriksaan ejaan, karena TextView otomatis menggunakan pemeriksa ejaan:

Gambar yang menunjukkan cara pemeriksa ejaan diaktifkan secara otomatis dalam EditText
Gambar 2. Memeriksa ejaan di EditText.

Namun, Anda mungkin ingin berinteraksi langsung dengan layanan pemeriksa ejaan di kasus lainnya. Diagram berikut menunjukkan alur kontrol untuk berinteraksi dengan layanan pemeriksa ejaan:

Gambar yang menunjukkan diagram interaksi dengan layanan pemeriksa ejaan
Gambar 3. Interaksi dengan pemeriksa ejaan layanan.

Tujuan IMEI Latin editor metode input di Project Open Source Android berisi contoh pemeriksaan ejaan.