Nền tảng Android cung cấp khung kiểm tra chính tả cho phép bạn triển khai và truy cập tính năng kiểm tra lỗi chính tả trong ứng dụng của bạn. Khung này là một trong những Text Service API (API Dịch vụ văn bản).
Để dùng khung này trong ứng dụng, bạn cần tạo một dịch vụ Android sẽ tạo đối tượng session (phiên) kiểm tra chính tả. Dựa trên nội dung bạn cung cấp, đối tượng phiên trả về các đề xuất chính tả do chính tả tạo ra .
Vòng đời của trình kiểm tra chính tả
Sơ đồ dưới đây cho thấy vòng đời của dịch vụ kiểm tra chính tả:
Để bắt đầu kiểm tra chính tả, ứng dụng của bạn sẽ bắt đầu quá trình triển khai chính tả . Ứng dụng trong ứng dụng của bạn, chẳng hạn như hoạt động hoặc giao diện người dùng riêng lẻ yêu cầu phiên kiểm tra chính tả từ dịch vụ, sau đó sử dụng phiên để nhận gợi ý về văn bản. Khi ứng dụng khách chấm dứt hoạt động của mình, nó sẽ đóng phiên kiểm tra chính tả của nó. Nếu cần, ứng dụng của bạn có thể tắt chính tả bất cứ lúc nào.
Triển khai dịch vụ kiểm tra chính tả
Để sử dụng khung kiểm tra chính tả trong ứng dụng của bạn, hãy thêm dịch vụ kiểm tra chính tả bao gồm định nghĩa đối tượng phiên. Bạn cũng có thể thêm hoạt động không bắt buộc đối với ứng dụng kiểm soát chế độ cài đặt. Thêm tệp siêu dữ liệu XML mô tả dịch vụ kiểm tra chính tả và thêm các phần tử thích hợp vào tệp kê khai của bạn.
Lớp kiểm tra chính tả
Xác định đối tượng session (phiên) và service (dịch vụ) với các lớp sau:
-
- Lớp con của
SpellCheckerService
SpellCheckerService
triển khai cảService
và giao diện khung kiểm tra chính tả. Trong lớp con của bạn, triển khai phương thức sau:createSession()
- Phương thức ban đầu trả về một giá trị
đối tượng
SpellCheckerService.Session
đến một ứng dụng khách muốn kiểm tra chính tả.
- Lớp con của
-
- Việc triển khai
SpellCheckerService.Session
- Đối tượng mà dịch vụ kiểm tra chính tả cung cấp cho ứng dụng để cho phép chúng chuyển văn bản đến trình kiểm tra chính tả và nhận đề xuất. Trong phạm vi này , hãy triển khai các phương thức sau:
onCreate()
- Hệ thống gọi để phản hồi
createSession()
Trong phương thức này, bạn có thể khởi tạo đối tượngSpellCheckerService.Session
dựa trên ngôn ngữ hiện tại và các thông tin chi tiết khác. onGetSentenceSuggestionsMultiple()
- Thực hiện kiểm tra lỗi chính tả. Phương thức này trả về một mảng
SentenceSuggestionsInfo
chứa gợi ý cho các câu được chuyển tới đó.
Nếu muốn, bạn có thể triển khai
onCancel()
, xử lý các yêu cầu huỷ kiểm tra lỗi chính tả;onGetSuggestions()
, xử lý yêu cầu gợi ý từ; hoặconGetSuggestionsMultiple()
, Xử lý hàng loạt yêu cầu gợi ý từ. - Việc triển khai
Tệp kê khai và siêu dữ liệu của trình kiểm tra chính tả
Ngoài mã, hãy cung cấp tệp kê khai thích hợp và siêu dữ liệu cho trình kiểm tra chính tả.
Tệp kê khai xác định ứng dụng, dịch vụ và hoạt động cho kiểm soát các chế độ cài đặt, như trong ví dụ sau:
<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>
Các thành phần muốn sử dụng dịch vụ phải yêu cầu quyền
BIND_TEXT_SERVICE
để đảm bảo rằng chỉ hệ thống liên kết với dịch vụ. Định nghĩa về dịch vụ
cũng chỉ định tệp siêu dữ liệu spellchecker.xml
,
được mô tả trong phần tiếp theo.
Tệp siêu dữ liệu spellchecker.xml
chứa những nội dung sau
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>
Siêu dữ liệu chỉ định hoạt động mà trình kiểm tra chính tả sử dụng để kiểm soát phần cài đặt. Tệp này cũng xác định các loại phụ cho trình kiểm tra chính tả. Trong trường hợp này, loại phụ xác định ngôn ngữ mà trình kiểm tra chính tả có thể xử lý.
Truy cập dịch vụ kiểm tra chính tả qua ứng dụng khách
các ứng dụng sử dụng
TextView
và
EditText
các chế độ xem sẽ tự động được hưởng lợi từ kiểm tra chính tả, vì TextView
tự động sử dụng trình kiểm tra chính tả:
Tuy nhiên, bạn nên tương tác trực tiếp với dịch vụ kiểm tra chính tả tại các trường hợp khác. Sơ đồ dưới đây cho thấy quy trình kiểm soát hoạt động tương tác bằng dịch vụ kiểm tra chính tả:
Chiến lược phát hành đĩa đơn Mỹ Latinh trình chỉnh sửa phương thức nhập trong Dự án nguồn mở Android có chứa một ví dụ về kiểm tra chính tả.