Mulai Android 11, keyboard dan editor metode input (IME) lainnya dapat menampilkan saran isi otomatis inline, di kolom saran, atau yang serupa, bukan sistem yang menampilkan saran di menu. Karena saran isi otomatis ini dapat berisi data pribadi, seperti sandi atau informasi kartu kredit, saran tersebut disembunyikan dari IME hingga pengguna memilih salah satunya. Update IME dan layanan isi otomatis, seperti pengelola sandi, untuk menggunakan fitur ini. Jika IME atau layanan isi otomatis tidak mendukung isi otomatis inline, saran akan ditampilkan dalam menu, seperti pada versi sebelum Android 11.
Alur kerja
Dalam alur ini, IME berarti keyboard saat ini atau editor input lainnya, dan penyedia saran berarti penyedia saran isi otomatis yang sesuai. Bergantung pada kolom input dan setelan pengguna, penyedia saran mungkin berupa platform atau layanan isi otomatis.
Pengguna berfokus pada kolom input yang memicu isi otomatis, seperti kolom input sandi atau kartu kredit.
Platform akan mengkueri IME saat ini dan penyedia saran yang sesuai untuk melihat apakah keduanya mendukung isi otomatis inline. Jika IME atau penyedia saran tidak mendukung isi otomatis inline, saran akan ditampilkan dalam menu, seperti pada Android 10 dan yang lebih rendah.
Platform meminta IME untuk menyediakan permintaan saran. Permintaan saran ini menentukan jumlah maksimum saran yang akan ditampilkan dan juga memberikan spesifikasi presentasi untuk setiap saran. Spesifikasi presentasi menentukan hal-hal seperti ukuran maksimum, ukuran teks, warna, dan data font, sehingga penyedia saran dapat menyesuaikan tampilan dan nuansa IME.
Platform meminta penyedia saran untuk menyediakan hingga sejumlah saran yang diminta. Setiap saran meliputi callback untuk meng-inflate
Viewyang berisi UI saran.Platform memberi tahu IME bahwa saran sudah siap. IME menampilkan saran dengan memanggil metode callback untuk meng-inflate setiap
Viewsaran. Untuk melindungi informasi pribadi pengguna, IME tidak melihat saran pada tahap ini.Jika pengguna memilih salah satu saran, IME akan diberi tahu dengan cara yang sama seperti jika pengguna memilih saran dari menu sistem.
Bagian berikut menjelaskan cara mengonfigurasi IME atau layanan isi otomatis untuk mendukung isi otomatis inline.
Mengonfigurasi IME untuk mendukung isi otomatis inline
Bagian ini menjelaskan cara mengonfigurasi IME Anda untuk mendukung isi otomatis secara inline. Jika IME Anda tidak mendukung isi otomatis inline, platform akan menampilkan saran isi otomatis di menu secara default.
IME Anda harus menetapkan atribut supportsInlinedSuggestions ke true:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Saat memerlukan saran isi otomatis, platform akan memanggil metode
InputMethodService.onCreateInlineSuggestionsRequest() IME Anda. Anda harus
mengimplementasikan metode ini. Tampilkan InlineSuggestionsRequest yang menentukan hal berikut:
- Jumlah saran yang diinginkan IME Anda.
**
InlinePresentationSpecuntuk setiap saran, yang menentukan cara saran harus ditampilkan.
Saat memiliki saran, platform akan memanggil metode
onInlineSuggestionsResponse() IME Anda, dengan meneruskan
InlineSuggestionsResponse yang berisi saran. Anda harus menerapkan
metode ini. Dalam implementasi Anda, panggil
InlineSuggestionsResponse.getInlineSuggestions() untuk mendapatkan daftar
saran, lalu inflate setiap saran dengan memanggil
metode InlineSuggestion.inflate().
Mengonfigurasi layanan isi otomatis untuk mendukung isi otomatis inline
Bagian ini menjelaskan cara mengonfigurasi layanan isi otomatis untuk mendukung isi otomatis inline. Jika aplikasi Anda tidak mendukung isi otomatis inline, platform akan menampilkan saran isi otomatisnya di menu secara default.
Layanan isi otomatis Anda harus menetapkan atribut supportsInlinedSuggestions ke
true:
<autofill-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Saat IME memerlukan saran isi otomatis, platform akan memanggil metode onFillRequest() layanan isi otomatis Anda, seperti yang dilakukan di versi yang lebih lama dari Android 11. Namun, layanan Anda harus memanggil metode getInlineSuggestionsRequest() objek FillRequest yang diteruskan. Tindakan ini
mengambil InlineSuggestionsRequest yang dibuat oleh IME. InlineSuggestionsRequest menentukan jumlah saran inline yang diperlukan dan
cara setiap saran harus ditampilkan. Jika IME tidak mendukung saran inline,
metode ini akan menampilkan null.
Layanan isi otomatis Anda membuat objek InlinePresentation, hingga
jumlah maksimum yang diminta di InlineSuggestionsRequest. Presentasi Anda
harus mematuhi batasan ukuran yang ditentukan oleh InlineSuggestionsRequest. Untuk
menampilkan saran ke IME, panggil Dataset.Builder.setValue() sekali
untuk setiap saran. Android 11 menyediakan versi
Dataset.Builder.setValue() untuk mendukung saran inline.