À partir d'Android 11, les claviers et autres éditeurs de mode de saisie (IME) peuvent afficher des suggestions de saisie automatique de manière intégrée, dans une barre de suggestions ou dans un environnement similaire, au lieu d'être affichées par le système dans un menu déroulant. Étant donné que ces suggestions de saisie automatique peuvent contenir des données privées, telles que des mots de passe ou des informations de carte de paiement, elles sont masquées dans l'IME jusqu'à ce que l'utilisateur en sélectionne une. Pour pouvoir utiliser cette fonctionnalité, les éditeurs de mode de saisie et les gestionnaires de mots de passe doivent tous deux être mis à jour. Si un IME ou un gestionnaire de mots de passe n'est pas compatible avec la saisie automatique intégrée, les suggestions s'affichent dans un menu déroulant, comme avant Android 11.
Workflow
Pour comprendre le fonctionnement de la saisie automatique intégrée, il est utile d'en découvrir les différentes étapes. Dans les étapes ci-dessous, IME désigne le clavier actuel ou un autre éditeur de saisie, et fournisseur de suggestions désigne le fournisseur approprié de cette suggestion de saisie automatique. En fonction du champ de saisie et des paramètres de l'utilisateur, le fournisseur de suggestions peut être la plate-forme ou un service de saisie automatique.
L'utilisateur sélectionne un champ de saisie qui déclenche la saisie automatique, comme le champ de saisie d'un mot de passe ou d'un numéro de carte de paiement.
La plate-forme interroge l'IME actuel et le fournisseur de suggestions approprié pour vérifier s'ils acceptent la saisie automatique. Si l'IME ou le fournisseur de suggestions n'est pas compatible avec la saisie automatique intégrée, la suggestion s'affiche dans un menu déroulant, comme sur Android 10 ou version antérieure.
La plate-forme demande à l'IME de fournir une demande de suggestion. Cette demande spécifie le nombre maximal de suggestions souhaité par l'IME et fournit également des spécifications de présentation pour chacune d'elles. Les spécifications de présentation indiquent des éléments tels que la taille maximale, la taille du texte, les couleurs et les données spécifiques à la police, ce qui permet au fournisseur de suggestions de s'adapter à l'IME.
La plate-forme demande au fournisseur de suggestions de fournir le nombre de suggestions demandé. Chaque suggestion inclut un rappel visant à gonfler un élément
View
contenant l'interface utilisateur de la suggestion.La plate-forme informe l'IME que les suggestions sont prêtes. L'IME affiche les suggestions en appelant la méthode de rappel pour gonfler l'élément
View
de chaque suggestion. Afin de protéger les informations privées de l'utilisateur, l'IME ne voit pas les suggestions à ce stade.Si l'utilisateur choisit l'une des suggestions, l'IME est informé de la même manière que si l'utilisateur avait sélectionné une suggestion dans une liste déroulante.
Les sections suivantes décrivent comment configurer l'IME ou le gestionnaire de mots de passe pour permettre la saisie automatique intégrée.
Configurer des IME pour permettre la saisie automatique intégrée
Cette section explique comment configurer l'IME pour permettre la saisie automatique intégrée. Si votre IME n'est pas compatible avec la saisie automatique intégrée, la plate-forme affiche par défaut des suggestions de saisie automatique dans un menu déroulant.
L'IME doit définir l'attribut supportsInlinedSuggestions
sur true
:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Lorsque la plate-forme a besoin d'une suggestion de saisie automatique, elle appelle la méthode InputMethodService.onCreateInlineSuggestionsRequest()
de l'IME. Vous devez implémenter cette méthode. Renvoyez un objet InlineSuggestionsRequest
spécifiant les éléments suivants :
- Nombre de suggestions souhaitées par l'IME
Un élément
InlinePresentationSpec
pour chaque suggestion, définissant la manière dont elle doit être présentée
Lorsque la plate-forme propose des suggestions, elle appelle la méthode onInlineSuggestionsResponse()
de l'IME, en transmettant un élément InlineSuggestionsResponse
contenant les suggestions. Vous devez implémenter cette méthode. Votre implémentation appelle InlineSuggestionsResponse.getInlineSuggestions()
pour obtenir la liste des suggestions, puis gonfle chacune d'elles en appelant sa méthode InlineSuggestion.inflate()
.
Configurer les services de saisie automatique pour permettre la saisie automatique intégrée
Cette section explique comment configurer votre gestionnaire de mots de passe pour activer la saisie automatique intégrée. Si votre application n'est pas compatible avec la saisie automatique intégrée, la plate-forme affiche par défaut ses suggestions de saisie automatique dans un menu déroulant.
Votre gestionnaire de mots de passe doit définir l'attribut supportsInlinedSuggestions
sur true
:
<autofill-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Lorsque l'IME a besoin de suggestions de saisie automatique, la plate-forme appelle la méthode onFillRequest()
de votre service de saisie automatique, tout comme avant Android 11. Cependant, votre service doit appeler la méthode getInlineSuggestionsRequest()
de l'objet FillRequest
transmis pour obtenir l'élément InlineSuggestionsRequest
créé par l'IME. InlineSuggestionsRequest
spécifie le nombre de suggestions intégrées nécessaires et la façon dont chacune doit être présentée. Si l'IME n'est pas compatible avec les suggestions intégrées, la méthode renvoie null
.
Votre service de saisie automatique crée des objets InlinePresentation
, dans la limite du nombre maximal demandé dans InlineSuggestionsRequest
.
Vos présentations doivent respecter les contraintes de taille spécifiées par InlineSuggestionsRequest
. Pour renvoyer vos suggestions à l'IME, appelez Dataset.Builder.setValue()
une fois pour chaque suggestion. Android 11 fournit de nouvelles versions de Dataset.Builder.setValue()
pour permettre les suggestions intégrées.
Remarque : Même si l'éditeur de mode de saisie est censé utiliser les suggestions fournies par votre service, il n'y a aucune garantie qu'il le fasse.