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

Android 11'den itibaren klavyeler ve diğer giriş yöntemi düzenleyicileri (IME'ler), otomatik doldurma önerilerini sistemin bir menüde göstermesi yerine satır içinde, öneriler şeridinde veya benzer bir şekilde gösterebilir. Bu otomatik doldurma önerileri, şifreler veya kredi kartı bilgileri gibi özel veriler içerebileceğinden, kullanıcı bir öneri seçene kadar öneriler IME'den gizlenir. Bu özellikten yararlanmak için IME'leri ve şifre yöneticileri gibi otomatik doldurma hizmetlerini güncelleyin. Bir IME veya 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, mevcut klavyeyi veya diğer giriş düzenleyiciyi, öneri sağlayıcı ise otomatik doldurma önerisinin uygun sağlayıcısını ifade eder. Giriş alanına ve kullanıcının ayarlarına bağlı olarak öneri sağlayıcı, platform veya otomatik doldurma hizmeti olabilir.

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

  2. Platform, satır içi otomatik doldurmayı destekleyip desteklemediklerini görmek için mevcut 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 göndermesini ister. Bu öneri isteği, gösterilecek maksimum öneri sayısını belirtir ve her öneri için sunum spesifikasyonları sağlar. Sunum spesifikasyonları; maksimum boyut, metin boyutu, renkler ve yazı tipi verileri gibi özellikleri belirterek öneri sağlayıcının IME'nin görünüm ve tarzıyla eşleşmesini sağlar.

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

  5. Platform, IME'ye önerilerin hazır olduğunu bildirir. IME, her önerinin View öğesini şişirmek için geri çağırma yöntemini çağırarak önerileri gösterir. IME, kullanıcının özel bilgilerini korumak için bu aşamada önerilerin ne olduğunu görmez.

  6. Kullanıcı önerilerden birini seçerse IME, kullanıcının sistem menüsünden bir öneri seçmesiyle 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"/>

Platform, otomatik doldurma önerisine ihtiyaç duyduğunda IME'nizin InputMethodService.onCreateInlineSuggestionsRequest() yöntemini çağırır. Bu yöntemi uygulamanız gerekir. Aşağıdakileri belirten 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.

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

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'den önceki sürümlerde olduğu gibi otomatik doldurma hizmetinizin onFillRequest() yöntemini çağırır. Ancak hizmetiniz, iletilen FillRequest nesnesinin getInlineSuggestionsRequest() yöntemini çağırmalıdır. Bu işlem, IME tarafından oluşturulan InlineSuggestionsRequest öğesini alır. InlineSuggestionsRequest, kaç tane satır içi öneri gerektiğini ve her birinin 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 nesneleri oluşturur. Sunularınız, InlineSuggestionsRequest tarafından belirtilen boyut kısıtlamalarına uymalıdır. Önerilerinizi IME'ye döndürmek için her öneri için bir kez Dataset.Builder.setValue() yöntemini çağırın. Android 11, satır içi önerileri desteklemek için Dataset.Builder.setValue() sürümlerini sunar.