Mulai dari Android 11, keyboard dan editor metode input (IME) lainnya dapat menampilkan saran isi otomatis secara inline, di strip saran, atau antarmuka serupa, bukan di sistem yang menampilkan saran di menu. Sejak saran isi otomatis ini dapat berisi data pribadi, seperti sandi atau informasi kartu kredit, saran disembunyikan dari IME hingga pengguna memilih satu. Mengupdate IME dan layanan isi otomatis, seperti pengelola sandi, ke memanfaatkan fitur ini. Jika IME atau layanan isi otomatis tidak mendukung inline isi otomatis, saran ditampilkan dalam menu, seperti pada versi yang lebih lama dari Android 11.
Alur kerja
Dalam alur ini, IME berarti keyboard atau editor input lainnya saat ini, dan penyedia saran adalah penyedia saran isi otomatis yang sesuai. Bergantung pada kolom input dan setelan pengguna, penyedia saran mungkin merupakan platform atau layanan isi otomatis.
Pengguna fokus pada kolom input yang memicu isi otomatis, seperti kolom input sandi atau kartu kredit.
Platform membuat kueri IME saat ini dan penyedia saran yang sesuai untuk melihat apakah mereka mendukung isi otomatis secara inline. Jika IME atau penyedia saran tidak mendukung isi otomatis inline, saran akan ditampilkan di menu, seperti pada Android 10 dan versi yang lebih lama.
Platform meminta IME untuk menyediakan permintaan saran. Saran ini menentukan jumlah maksimum saran yang akan ditampilkan dan juga menyediakan spesifikasi presentasi untuk setiap saran. Spesifikasi presentasi menentukan hal-hal seperti ukuran maksimum, ukuran teks, warna, dan data {i>font<i}, memungkinkan penyedia saran cocok dengan tampilan dan nuansa IME.
Platform meminta penyedia saran untuk menyediakan hingga sejumlah saran yang diminta. Setiap saran meliputi callback untuk meng-inflate
View
yang berisi UI saran.Platform memberi tahu IME bahwa saran sudah siap. IME menampilkan saran dengan memanggil metode callback untuk meng-inflate setiap
View
saran. Untuk melindungi informasi pribadi pengguna, IME tidak melihat saran tersebut pada di 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 ini secara default menampilkan saran isi otomatis di menu.
IME Anda harus menetapkan atribut supportsInlinedSuggestions
ke
true
:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Jika platform 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.
InlinePresentationSpec
untuk setiap saran, yang menentukan cara saran harus ditampilkan.
Jika memiliki saran, platform akan memanggil metode
onInlineSuggestionsResponse()
IME, dengan meneruskan
InlineSuggestionsResponse
yang berisi saran. Anda harus mengimplementasikan metode ini. Di
implementasi, panggil
InlineSuggestionsResponse.getInlineSuggestions()
untuk mendapatkan daftar saran, lalu meng-inflate setiap saran dengan memanggil
InlineSuggestion.inflate()
.
Mengonfigurasi layanan isi otomatis untuk mendukung isi otomatis inline
Bagian ini menjelaskan cara mengonfigurasi layanan isi otomatis untuk mendukung isi otomatis secara inline. Jika aplikasi Anda tidak mendukung isi otomatis inline, platform secara default akan disetel ke yang menampilkan saran isi otomatisnya di menu.
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 isi otomatis Anda
layanan
onFillRequest()
, seperti yang dilakukan pada versi di bawah Android 11. Namun,
layanan harus memanggil objek FillRequest
yang diteruskan
getInlineSuggestionsRequest()
untuk mendapatkan InlineSuggestionsRequest
yang dibuat oleh IME. Tujuan
InlineSuggestionsRequest
menentukan jumlah saran inline yang diperlukan dan
bagaimana setiap produk
harus disajikan. Jika IME tidak mendukung saran inline,
metode ini akan menampilkan null
.
Layanan isi otomatis Anda membuat
InlinePresentation
objek, hingga jumlah maksimum yang diminta dalam InlineSuggestionsRequest
.
Presentasi Anda harus mematuhi batasan ukuran yang ditentukan oleh
InlineSuggestionsRequest
. Untuk menunjukkan saran Anda kepada IME, panggil
Dataset.Builder.setValue()
satu kali untuk setiap saran. Android 11 menyediakan versi
Dataset.Builder.setValue()
untuk mendukung saran inline.