Intégrer des fonctionnalités de recherche Android dans votre application

Essayer Compose
Jetpack Compose est le kit d'outils d'UI recommandé pour Android. Découvrez comment ajouter une fonctionnalité de recherche dans Compose.

La recherche est une fonctionnalité utilisateur essentielle sur Android. Les utilisateurs doivent pouvoir rechercher toutes les données auxquelles ils ont accès, que le contenu se trouve sur l'appareil ou sur Internet. Pour vous aider à créer une expérience de recherche cohérente pour les utilisateurs, Android fournit un framework de recherche qui vous aide à implémenter la recherche pour votre application.

Figure 1 : Boîte de dialogue de recherche avec des suggestions de recherche personnalisées.

Le framework de recherche propose deux modes de saisie de recherche : une boîte de dialogue de recherche en haut de l'écran ou un widget de recherche (SearchView) que vous pouvez intégrer dans la mise en page de votre activité. Dans les deux cas, le système Android vous aide à implémenter la recherche en envoyant les requêtes de recherche à une activité spécifique qui effectue les recherches. Vous pouvez également activer la boîte de dialogue ou le widget de recherche pour fournir des suggestions de recherche à mesure que l'utilisateur saisit du texte. La figure 1 montre un exemple de boîte de dialogue de recherche avec des suggestions de recherche facultatives.

Une fois la boîte de dialogue de recherche ou le widget de recherche configurés, vous pouvez effectuer les opérations suivantes :

  • Activez la recherche vocale.
  • Fournir des suggestions de recherche basées sur les requêtes utilisateur récentes.
  • Fournissez des suggestions de recherche personnalisées qui correspondent aux résultats réels dans les données de votre application.
  • Proposez les suggestions de recherche de votre application dans le champ de recherche rapide à l'échelle du système.

Remarque : Le framework de recherche ne fournit pas d'API pour rechercher vos données. Pour effectuer une recherche, vous devez utiliser les API adaptées à vos données. Par exemple, si vos données sont stockées dans une base de données SQLite, utilisez les API android.database.sqlite pour effectuer des recherches.

De plus, rien ne garantit qu'un appareil fournisse un bouton de RECHERCHE dédié qui appelle l'interface de recherche dans votre application. Lorsque vous utilisez la boîte de dialogue de recherche ou une interface personnalisée, vous devez fournir un bouton de recherche dans votre UI qui active l'interface de recherche. Pour en savoir plus, consultez Appeler la boîte de dialogue de recherche.

Les pages suivantes vous expliquent comment utiliser le framework Android pour implémenter la recherche :

Créer une interface de recherche
Découvrez comment configurer votre application pour utiliser la boîte de dialogue ou le widget de recherche.
Ajouter des suggestions de requêtes récentes
Comment fournir des suggestions basées sur les requêtes précédemment utilisées ?
Ajouter des suggestions personnalisées
Découvrez comment fournir des suggestions basées sur des données personnalisées de votre application et les proposer dans la barre de recherche rapide à l'échelle du système.
Configuration indexable
Document de référence pour le fichier de configuration consultable. Les autres documents abordent également le fichier de configuration en termes de comportements spécifiques.

Protéger la confidentialité des utilisateurs

Lorsque vous implémentez la recherche dans votre application, prenez des mesures pour protéger la confidentialité de l'utilisateur. De nombreux utilisateurs considèrent que leurs activités sur leur téléphone, y compris les recherches, sont des informations privées. Pour protéger la confidentialité des utilisateurs, respectez les principes suivants :

  • N'envoyez pas d'informations personnelles aux serveurs. Si vous devez le faire, ne les enregistrez pas.

    Les informations personnelles sont toutes les informations permettant d'identifier personnellement vos utilisateurs, comme leur nom, leur adresse e-mail, leurs informations de facturation ou d'autres données pouvant être raisonnablement associées à ces informations. Si votre application implémente la recherche avec l'aide d'un serveur, évitez d'envoyer des informations personnelles avec les requêtes de recherche. Par exemple, si vous recherchez des entreprises à proximité d'un code postal, vous n'avez pas besoin d'envoyer également l'ID utilisateur. Envoyez uniquement le code postal au serveur. Si vous devez envoyer des informations personnelles, évitez de les consigner. Si vous devez les consigner, protégez-les très soigneusement et effacez-les dès que possible.

  • Offrez aux utilisateurs un moyen d'effacer leur historique des recherches.

    Le framework de recherche aide votre application à fournir des suggestions spécifiques au contexte pendant que l'utilisateur saisit du texte. Parfois, ces suggestions sont basées sur les recherches précédentes ou d'autres actions effectuées par l'utilisateur lors d'une session antérieure. Un utilisateur peut ne pas souhaiter que ses recherches précédentes soient révélées à d'autres utilisateurs de l'appareil. Si votre application fournit des suggestions qui peuvent révéler les activités de recherche précédentes, implémentez un moyen pour l'utilisateur d'effacer son historique de recherche. Si vous utilisez SearchRecentSuggestions, vous pouvez appeler la méthode clearHistory(). Si vous implémentez des suggestions personnalisées, vous devez fournir une méthode "Effacer l'historique" similaire dans votre fournisseur de contenu, que l'utilisateur peut exécuter.