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:
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 metodeService
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.
- Subclass dari
-
- 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 objekSpellCheckerService.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; atauonGetSuggestionsMultiple()
, yang menangani kumpulan permintaan saran kata. - Implementasi dari
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:
Namun, Anda mungkin ingin berinteraksi langsung dengan layanan pemeriksa ejaan di kasus lainnya. Diagram berikut menunjukkan alur kontrol untuk berinteraksi dengan layanan pemeriksa ejaan:
Tujuan IMEI Latin editor metode input di Project Open Source Android berisi contoh pemeriksaan ejaan.