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

La recherche est une fonctionnalité utilisateur essentielle sur Android. Les utilisateurs doivent pouvoir effectuer des recherches dans toutes les données à leur disposition, que le contenu se trouve sur l'appareil ou sur Internet. Afin de 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 : Une 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 à la mise en page de votre activité. Dans les deux cas, le système Android facilite l'implémentation de la recherche en envoyant des requêtes de recherche à une activité spécifique qui effectue des recherches. Vous pouvez également activer la boîte de dialogue ou le widget de recherche pour fournir des suggestions de recherche au fur et à 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 que vous avez configuré la boîte de dialogue ou le widget Recherche, vous pouvez effectuer les opérations suivantes:

  • Activer la recherche vocale
  • Proposez des suggestions de recherche en fonction des requêtes récentes des utilisateurs.
  • fournissent des suggestions de recherche personnalisées qui correspondent aux résultats réels dans vos données d'application ;
  • Affichez les suggestions de recherche de votre application dans le champ de recherche rapide du système.

Remarque: Le framework de recherche ne fournit pas d'API permettant de rechercher vos données. Pour effectuer une recherche, vous devez utiliser des 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.

Par ailleurs, il n'est pas garanti qu'un appareil fournisse un bouton RECHERCHER dédié pour appeler 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 interface utilisateur qui active l'interface de recherche. Pour en savoir plus, consultez la section 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
Comment configurer votre application pour utiliser la boîte de dialogue ou le widget Recherche.
Ajouter des suggestions de requêtes récentes
Comment fournir des suggestions en fonction des requêtes utilisées précédemment.
Ajouter des suggestions personnalisées
Comment fournir des suggestions basées sur les données personnalisées de votre application et les proposer dans le champ de recherche rapide de l'ensemble du système.
Configuration incluse dans l'index de recherche
Document de référence pour le fichier de configuration inclus dans l'index de recherche. Les autres documents traitent également du 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 leurs activités sur leur téléphone, y compris les recherches, comme des informations privées. Pour protéger la confidentialité des utilisateurs, respectez les principes suivants:

  • N'envoyez pas d'informations personnelles aux serveurs et, le cas échéant, ne les consignez pas.

    Les informations personnelles désignent toute information permettant d'identifier personnellement vos utilisateurs, telles que leur nom, leur adresse e-mail, leurs informations de facturation ou toute autre donnée pouvant être raisonnablement associée à ces informations. Si votre application met en œuvre 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 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 permet à votre application de fournir des suggestions contextuelles pendant que l'utilisateur saisit du texte. Parfois, ces suggestions sont basées sur des recherches précédentes ou d'autres actions effectuées par l'utilisateur lors d'une session précédente. Un utilisateur peut ne pas souhaiter que les autres utilisateurs de l'appareil voient ses recherches précédentes. Si votre application fournit des suggestions pouvant révéler des activités de recherche précédentes, mettez en place un moyen pour l'utilisateur d'effacer son historique des recherches. Si vous utilisez SearchRecentSuggestions, vous pouvez appeler la méthode clearHistory(). Si vous implémentez des suggestions personnalisées, vous devez fournir à votre fournisseur de contenu une méthode similaire d'effacement de l'historique que l'utilisateur peut exécuter.