Integrar os recursos de pesquisa do Android ao app
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Teste o jeito do Compose
O Jetpack Compose é o kit de ferramentas de UI recomendado para Android. Saiba como adicionar a funcionalidade de pesquisa no Compose.
A pesquisa é um recurso do usuário fundamental no Android. Os usuários precisam poder pesquisar qualquer informação que esteja disponível para eles, quer o conteúdo esteja localizado no dispositivo ou na Internet. Para ajudar a criar uma experiência de pesquisa consistente para os usuários, o Android fornece um framework de pesquisa que ajuda a implementar a pesquisa no seu app.
Figura 1. Uma caixa de pesquisa com sugestões de pesquisa personalizadas.
O framework de pesquisa oferece dois modos de entrada pesquisa: uma caixa de diálogo de pesquisa na parte superior da tela ou um widget de pesquisa (SearchView
) que é incorporado ao layout da atividade. Nos dois casos, o sistema Android ajuda na implementação da pesquisa, enviando as consultas a uma atividade específica que realiza as pesquisas. Você também pode ativar a caixa de diálogo ou o widget de pesquisa para fornecer sugestões enquanto o usuário digita. A Figura 1 mostra um exemplo de caixa de diálogo com sugestões de pesquisa opcionais.
Depois de configurar a caixa de diálogo ou o widget de pesquisa, você pode fazer o seguinte:
- Ative a pesquisa por voz.
- fornecer sugestões de pesquisa com base em consultas recentes do usuário;
- fornecer sugestões de pesquisa personalizadas que correspondam aos resultados reais nos dados do seu app;
- Oferecer sugestões de pesquisa do app na caixa de pesquisa rápida do sistema.
Observação: o framework de pesquisa não fornece APIs para pesquisar seus dados. Para realizar uma pesquisa, é necessário usar APIs adequadas para seus dados. Por exemplo, se os dados estiverem armazenados em um banco de dados SQLite, use as APIs android.database.sqlite
para realizar pesquisas.
Além disso, não há garantia de que o dispositivo forneça um botão dedicado a "PESQUISAR" que invoque a interface de pesquisa no seu app. Ao usar a caixa de diálogo de pesquisa ou uma interface personalizada, é necessário fornecer um botão de pesquisa na UI que ative a interface de pesquisa. Para mais informações, consulte Invocar a caixa de diálogo de pesquisa.
As páginas a seguir mostram como usar o framework do Android para implementar a pesquisa:
- Criar uma interface de pesquisa
- Como configurar seu app para usar a caixa de diálogo ou o widget de pesquisa.
- Adicionar sugestões de consultas
recentes
- Como fornecer sugestões com base em consultas realizadas anteriormente.
- Adicionar sugestões personalizadas
- Como fornecer sugestões com base em dados personalizados do seu app e oferecê-las na Caixa de pesquisa rápida do sistema.
- Configuração pesquisável
- Um documento de referência para o arquivo de configuração pesquisável. Os outros documentos também discutem o arquivo de configuração em termos de comportamentos específicos.
Proteger a privacidade do usuário
Ao implementar a pesquisa no seu app, tome medidas para proteger a privacidade do usuário. Muitos usuários consideram que atividades realizadas no smartphone são informações particulares, incluindo pesquisas. Para proteger a privacidade dos usuários, obedeça aos seguintes princípios:
- Não envie informações pessoais aos servidores. Caso seja necessário, não as registre.
Informações pessoais são quaisquer informações que possam identificar os usuários pessoalmente, como nomes, endereços de e-mail, informações de faturamento ou outros dados que possam ser razoavelmente relacionados a essas informações. Se o app implementar a pesquisa com assistência de um servidor, evite enviar informações pessoais com as consultas de pesquisa. Por exemplo, se você estiver pesquisando empresas perto de um CEP, não é necessário enviar também o código do usuário. Envie apenas o CEP ao servidor. Caso seja necessário enviar informações pessoais, evite registrá-las. Caso seja necessário registrá-las, proteja esses dados com muito cuidado e apague-os o quanto antes.
- Ofereça aos usuários uma forma de limpar o histórico de pesquisa.
O framework de pesquisa ajuda o app a fornecer sugestões específicas de contexto enquanto o usuário
digita. Às vezes, essas sugestões são baseadas em pesquisas anteriores ou em outras ações realizadas pelo usuário em uma sessão passada. É possível que o usuário não queira que pesquisas anteriores sejam reveladas a outros usuários do dispositivo. Se o
aplicativo fornece sugestões que
podem revelar atividades de pesquisa anteriores, implemente uma maneira para o usuário limpar o
histórico de pesquisa. Se você estiver usando SearchRecentSuggestions
,
chame o método
clearHistory()
. Se você estiver implementando sugestões personalizadas, será necessário fornecer um método de "limpar histórico" semelhante no seu provedor de conteúdo que possa ser executado pelo usuário.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-26 UTC."],[],[],null,["Try the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to add search functionality in Compose. \n[Search bar →](/develop/ui/compose/components/search-bar) \n\nSearch is a core user feature on Android. Users must be able\nto search any data that is available to them, whether the content is located on the device or\nthe internet. To help create a consistent search experience for users, Android provides a\nsearch framework that helps you implement search for your application. \n\n**Figure 1.** A search dialog with custom\nsearch suggestions.\n\nThe search framework offers two modes of search input: a search dialog at the top of the\nscreen or a search widget ([SearchView](/reference/android/widget/SearchView)) that you can embed in your activity\nlayout. In either case, the Android system assists your search implementation by\ndelivering search queries to a specific activity that performs searches. You can also enable\nthe search dialog or widget to provide search suggestions as the user types. Figure 1 shows an\nexample of the search dialog with optional search suggestions.\n\nOnce you set up either the search dialog or the search widget, you can do the following:\n\n- Enable voice search.\n- Provide search suggestions based on recent user queries.\n- Provide custom search suggestions that match actual results in your application data.\n- Offer your application's search suggestions in the system-wide Quick Search Box.\n\n**Note** : The search framework does *not* provide APIs to\nsearch your data. To perform a search, you need to use APIs appropriate for your data. For example,\nif your data is stored in an SQLite database, use the [android.database.sqlite](/reference/android/database/sqlite/package-summary)\nAPIs to perform searches.\n\n\u003cbr /\u003e\n\n\nAlso, there is no guarantee that a device provides a dedicated SEARCH button that invokes the\nsearch interface in your application. When using the search dialog or a custom interface, you\nmust provide a search button in your UI that activates the search interface. For more\ninformation, see [Invoke the search\ndialog](/develop/ui/views/search/search-dialog#InvokingTheSearchDialog).\n\nThe following pages show you how to use Android's framework to implement search:\n\n**[Create a search interface](/develop/ui/views/search/search-dialog)**\n: How to set up your application to use the search dialog or search widget.\n\n**[Add recent query\nsuggestions](/develop/ui/views/search/adding-recent-query-suggestions)**\n: How to provide suggestions based on queries previously used.\n\n**[Add custom suggestions](/develop/ui/views/search/adding-custom-suggestions)**\n: How to provide suggestions based on custom data from your application and offer them\n in the system-wide Quick Search Box.\n\n**[Searchable configuration](/develop/ui/views/search/searchable-config)**\n: A reference document for the searchable configuration file. The other\n documents also discuss the configuration file in terms of specific behaviors.\n\nProtect user privacy\n\nWhen you implement search in your application, take steps to protect the user's\nprivacy. Many users consider their activities on their phone---including searches---to\nbe private information. To protect users' privacy, abide by the following\nprinciples:\n\n- **Don't send personal information to servers‐and if you must, don't log it.**\n\n Personal information is any information that can personally identify your users, such as their\n names, email addresses, billing information, or other data that can be reasonably linked to such\n information. If your application implements search with the assistance of a server, avoid sending\n personal information along with the search queries. For example, if you are searching for businesses\n near a ZIP code,\n you don't need to send the user ID as well; send only the ZIP code to the server. If you must\n send personal information, avoid logging it. If you must log it, protect that data\n very carefully and erase it as soon as possible.\n- **Provide users with a way to clear their search history.**\n\n The search framework helps your application provide context-specific suggestions while the user\n types. Sometimes these\n suggestions are based on previous searches or other actions taken by the user in an earlier\n session. A user might not want previous searches to be revealed to other device users. If your\n application provides suggestions that\n can reveal previous search activities, implement a way for the user to clear their\n search history. If you are using [SearchRecentSuggestions](/reference/android/provider/SearchRecentSuggestions),\n you can call the\n [clearHistory()](/reference/android/provider/SearchRecentSuggestions#clearHistory())\n method. If you are implementing custom suggestions, you need to provide a similar \"clear history\"\n method in your content provider that the user can execute."]]