Otomatik doldurmayı IME'ler ve otomatik doldurma hizmetleriyle entegre edin

Android 11'den itibaren klavyeler ve diğer giriş yöntemi düzenleyiciler (IME'ler), otomatik doldurma önerilerini bir menüde gösteren sistemin yerine satır içinde bir öneri şeridinde veya benzer bir şekilde görüntüleyebilir. Bu otomatik doldurma önerileri şifre veya kredi kartı bilgileri gibi gizli veriler içerebileceğinden, kullanıcı bir seçim yapana kadar öneriler IME'den gizlenir. Bu özellikten yararlanmak için IME'leri ve şifre yöneticileri gibi otomatik doldurma hizmetlerini güncelleyin. IME veya bir otomatik doldurma hizmeti satır içi otomatik doldurmayı desteklemiyorsa öneriler, Android 11'den önceki sürümlerde olduğu gibi bir menüde gösterilir.

İş Akışı

Bu akışta IME geçerli klavye veya başka bir giriş düzenleyici, öneri sağlayıcı ise otomatik doldurma önerisinin uygun sağlayıcısı anlamına gelir. Giriş alanına ve kullanıcının ayarlarına bağlı olarak öneri sağlayıcısı, platform veya bir otomatik doldurma hizmeti olabilir.

  1. Kullanıcı, otomatik doldurmayı tetikleyen şifre veya kredi kartı giriş alanı gibi bir giriş alanına odaklanır.

  2. Platform, satır içi otomatik doldurmayı destekleyip desteklemediklerini görmek için geçerli IME'yi ve uygun öneri sağlayıcıyı sorgular. IME veya öneri sağlayıcı, satır içi otomatik doldurmayı desteklemiyorsa öneri, Android 10 ve önceki sürümlerde olduğu gibi bir menüde gösterilir.

  3. Platform, IME'den bir öneri isteği sağlamasını ister. Bu öneri isteği, görüntülenecek maksimum öneri sayısını belirtir ve her öneri için sunu spesifikasyonlarını da sağlar. Sunum spesifikasyonlarında maksimum boyut, metin boyutu, renkler ve yazı tipi verileri gibi bilgiler belirtilir. Böylece, öneri sağlayıcı IME'nin görünümünü ve tarzını yansıtabilir.

  4. Platform, öneri sağlayıcıdan istenen sayıda öneri sağlamasını ister. Her öneri, kullanıcı arayüzünü içeren bir View oluşturmak için bir geri çağırma içerir.

  5. Platform, IME'ye önerilerin hazır olduğunu bildirir. IME, her bir önerinin View değerini artırmak için geri çağırma yöntemini çağırarak önerileri görüntüler. IME, kullanıcının gizli bilgilerini korumak için bu aşamada önerileri görmez.

  6. Kullanıcı önerilerden birini seçerse IME, kullanıcının sistem menüsünden bir öneri seçtiğiyle aynı şekilde bilgilendirilir.

Aşağıdaki bölümlerde, IME veya otomatik doldurma hizmetinizi satır içi otomatik doldurmayı destekleyecek şekilde nasıl yapılandıracağınız açıklanmaktadır.

IME'leri satır içi otomatik doldurmayı destekleyecek şekilde yapılandırma

Bu bölümde, IME'nizi satır içi otomatik doldurmayı destekleyecek şekilde nasıl yapılandıracağınız açıklanmaktadır. IME'niz satır içi otomatik doldurmayı desteklemiyorsa platform, otomatik doldurma önerilerini varsayılan olarak bir menüde gösterir.

IME'niz supportsInlinedSuggestions özelliğini true olarak ayarlamalıdır:

<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

Platformun otomatik doldurma önerisine ihtiyacı olduğunda IME'nizin InputMethodService.onCreateInlineSuggestionsRequest() yöntemini çağırır. Bu yöntemi uygulamanız gerekir. Aşağıdakileri belirterek bir InlineSuggestionsRequest döndürün:

  • IME'nizin istediği öneri sayısı.
  • Her öneri için önerinin nasıl sunulması gerektiğini tanımlayan bir InlinePresentationSpec.

Platformda öneriler olduğunda, IME'nizin onInlineSuggestionsResponse() yöntemini çağırarak önerileri içeren bir InlineSuggestionsResponse iletir. Bu yöntemi uygulamanız gerekir. Uygulamanızda öneri listesini almak için InlineSuggestionsResponse.getInlineSuggestions() çağrısı yapın, ardından InlineSuggestion.inflate() yöntemini çağırarak her bir öneriyi artırın.

Otomatik doldurma hizmetlerini, satır içi otomatik doldurmayı destekleyecek şekilde yapılandırma

Bu bölümde, otomatik doldurma hizmetinizi satır içi otomatik doldurmayı destekleyecek şekilde nasıl yapılandıracağınız açıklanmaktadır. Uygulamanız satır içi otomatik doldurmayı desteklemiyorsa platform, otomatik doldurma önerilerini varsayılan olarak bir menüde gösterir.

Otomatik doldurma hizmetiniz supportsInlinedSuggestions özelliğini true olarak ayarlamalıdır:

<autofill-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

IME'nin otomatik doldurma önerilerine ihtiyacı olduğunda platform, Android 11'in altındaki sürümlerde olduğu gibi otomatik doldurma hizmetinizin onFillRequest() yöntemini çağırır. Ancak hizmetinizin IME tarafından oluşturulan InlineSuggestionsRequest öğesini almak için iletilen FillRequest nesnesinin getInlineSuggestionsRequest() yöntemini çağırması gerekir. InlineSuggestionsRequest, kaç satır içi önerinin gerekli olduğunu ve her bir önerinin nasıl sunulması gerektiğini belirtir. IME, satır içi önerileri desteklemiyorsa yöntem null değerini döndürür.

Otomatik doldurma hizmetiniz InlineSuggestionsRequest içinde istenen maksimum sayıya kadar (InlinePresentation nesne) oluşturur. Sunularınız, InlineSuggestionsRequest ile belirtilen boyut kısıtlamalarına uymalıdır. Önerilerinizi IME'ye geri döndürmek için Dataset.Builder.setValue() numarasını bir kez arayın. Android 11, satır içi önerileri desteklemek için Dataset.Builder.setValue() sürümlerini sağlar.