Cómo integrar funciones de búsqueda de Android a tu app
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Prueba hacerlo con Compose
Jetpack Compose es el kit de herramientas de IU recomendado para Android. Aprende a agregar funcionalidad de búsqueda en Compose.
La búsqueda es una función de usuario central en Android. Los usuarios deben poder buscar cualquier dato disponible, independientemente de si el contenido se encuentra en el dispositivo o en Internet. Para ayudar a crear una experiencia de búsqueda coherente para los usuarios, Android proporciona un marco de trabajo de búsqueda que te ayuda a implementar la búsqueda en tu aplicación.
Figura 1: Un diálogo de búsqueda con sugerencias de búsqueda personalizadas
El marco de trabajo de búsqueda ofrece dos modos de entrada de búsqueda: un diálogo de búsqueda en la parte superior de la pantalla y un widget de búsqueda (SearchView
) que puedes incorporar en el diseño de la actividad. En ambos casos, el sistema Android ayuda a implementar la búsqueda, ya que entrega consultas a una actividad específica que realiza las búsquedas. También puedes habilitar el diálogo o el widget de búsqueda para proporcionar sugerencias de búsqueda a medida que el usuario escribe. En la figura 1, se muestra un ejemplo del diálogo de búsqueda con sugerencias de búsqueda opcionales.
Una vez que hayas configurado el diálogo o el widget de búsqueda, podrás hacer lo siguiente:
- Habilita la búsqueda por voz.
- Proporcionar sugerencias de búsqueda basadas en consultas recientes de los usuarios
- Proporcionar sugerencias de búsqueda personalizadas que coincidan con los resultados reales en los datos de tu aplicación
- Ofrecer las sugerencias de búsqueda de la aplicación en el cuadro de búsqueda rápida de todo el sistema
Nota: El marco de trabajo de búsqueda no proporciona APIs para buscar en tus datos. A fin de realizar una búsqueda, debes usar las API apropiadas para tus datos. Por ejemplo, si los datos se almacenan en una base de datos SQLite, usa las APIs de android.database.sqlite
para realizar búsquedas.
Además, no hay garantía de que un dispositivo proporcione un botón de BÚSQUEDA exclusivo que invoque la interfaz de búsqueda en la aplicación. Cuando utilizas el diálogo de búsqueda o una interfaz personalizada, debes proporcionar un botón de búsqueda en la IU que active la interfaz de búsqueda. Para obtener más información, consulta Cómo invocar el diálogo de búsqueda.
En las siguientes páginas, se muestra cómo usar el framework de Android para implementar la búsqueda:
- Cómo crear una interfaz de búsqueda
- Cómo configurar tu aplicación para que use el diálogo de búsqueda o el widget de búsqueda.
- Cómo agregar sugerencias de consultas recientes
- Cómo proporcionar sugerencias basadas en consultas utilizadas anteriormente.
- Cómo agregar sugerencias personalizadas
- Cómo proporcionar sugerencias basadas en datos personalizados de tu aplicación y ofrecerlas en el cuadro de búsqueda rápida de todo el sistema.
- Configuración que permite búsquedas
- Un documento de referencia para el archivo de configuración de búsqueda. En los otros documentos, también se analiza el archivo de configuración en cuanto a comportamientos específicos.
Protege la privacidad del usuario
Cuando implementes la búsqueda en la aplicación, toma medidas para proteger la privacidad del usuario. Muchos usuarios consideran que sus actividades en el teléfono, incluidas las búsquedas, son información privada. Para proteger la privacidad de los usuarios, debes cumplir con los siguientes principios:
- No envíes información personal a los servidores y, si debes hacerlo, no la registres.
La información personal es cualquier dato que pueda identificar personalmente a los usuarios, como sus nombres, direcciones de correo electrónico, datos de facturación u otra información que pueda vincularse razonablemente a dichos datos. Si tu aplicación implementa la búsqueda con la ayuda de un servidor, evita enviar información personal junto con las consultas de búsqueda. Por ejemplo, si estás buscando negocios cerca de un código postal, no necesitas enviar el ID de usuario también; envía solo el código postal al servidor. Si debes enviar información personal, evita registrarla. Si debes registrarla, protege esos datos con mucho cuidado y bórralos lo antes posible.
- Proporciona a los usuarios una forma de borrar su historial de búsqueda.
El marco de trabajo de búsqueda ayuda a tu aplicación a proporcionar sugerencias específicas del contexto mientras el usuario escribe. A veces, estas sugerencias se basan en búsquedas anteriores o en otras acciones realizadas por el usuario en una sesión anterior. Es posible que un usuario no desee que se revelen búsquedas anteriores a otros usuarios del dispositivo. Si tu aplicación proporciona sugerencias que pueden revelar actividades de búsqueda anteriores, implementa una opción para que el usuario borre su historial de búsqueda. Si usas SearchRecentSuggestions
, puedes llamar al método clearHistory()
. Si implementas sugerencias personalizadas, debes proporcionar un método similar para "borrar el historial" en el proveedor de contenido que el usuario pueda ejecutar.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-08-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]