Prácticas recomendadas para accesos directos
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Cuando diseñes y crees los accesos directos de tu app, sigue estos lineamientos:
-
Sigue los lineamientos de diseño
-
Para lograr que los atajos de tu app sean visualmente coherentes con los que se usan para las apps del sistema, sigue los Lineamientos de diseño de íconos de accesos directos a aplicaciones.
-
Publica solo cuatro accesos directos distintos
-
Aunque la API admite una combinación de hasta 15 accesos directos estáticos y dinámicos para tu app, te recomendamos que publiques solo cuatro accesos directos distintos para mejorar su apariencia visual en el selector.
Además de mostrar accesos directos en el selector, usa la Biblioteca de integración de accesos directos de Google para mostrar accesos directos en las plataformas de Google, como Asistente de Google. Esta biblioteca admite el envío de una cantidad ilimitada de atajos dinámicos. Si usas esta biblioteca para enviar una gran cantidad de accesos directos, te recomendamos que llames al método setRank()
a fin de configurar el rank
de los accesos directos que deben aparecer en los selectores compatibles.
-
Limita la longitud de la descripción del acceso directo
-
El espacio en el menú que muestra los accesos directos de la app en el selector es limitado. Cuando sea posible, limita la longitud de la "descripción breve" de un acceso directo a 10 caracteres y la de la "descripción larga" a 25 caracteres.
Si deseas obtener más información sobre las etiquetas para los accesos directos estáticos, consulta Cómo personalizar valores de atributos.
Para accesos directos dinámicos y fijos, consulta la documentación de referencia en setLongLabel()
y setShortLabel()
.
-
Conserva el historial de uso de accesos directos y acciones
-
Para cada atajo que crees, considera las diferentes formas en que un usuario puede realizar la misma tarea directamente dentro de tu app. Llama a reportShortcutUsed()
en cada una de estas situaciones para que el selector mantenga un historial preciso de la frecuencia con la que un usuario realiza las acciones que representan tus atajos.
-
Actualiza las combinaciones de teclas solo cuando se conserve su significado
-
Cuando cambies los accesos directos dinámicos y fijos, solo llama a updateShortcuts()
cuando cambies la información de un acceso directo que conserve su significado. De lo contrario, usa uno de los siguientes métodos, según el tipo de acceso directo que estés recreando:
Por ejemplo, si creas un acceso directo para navegar a un supermercado, es apropiado actualizarlo si el nombre del supermercado cambia, pero su ubicación se mantiene igual. Sin embargo, si el usuario comienza a comprar en un supermercado diferente, es mejor crear un nuevo acceso directo.
-
Verifica los accesos directos dinámicos cada vez que inicies tu app por primera vez
-
Los accesos directos dinámicos no se conservan cuando el usuario restablece sus datos en un dispositivo nuevo. Por este motivo, te recomendamos verificar la cantidad de objetos que muestra getDynamicShortcuts()
cada vez que inicies tu app y volver a publicar accesos directos dinámicos según sea necesario, como se muestra en el fragmento de código en Copia de seguridad y restablecimiento.
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-07-27 (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-07-27 (UTC)"],[],[],null,["# Best practices for shortcuts\n\nWhen designing and creating your app's shortcuts, follow these guidelines:\n\n\n**Follow the design guidelines**\n\n: To make your app's shortcuts visually consistent with the shortcuts used for system apps, follow\n the\n [App Shortcuts Icon Design Guidelines](/static/shareables/design/app-shortcuts-design-guidelines.pdf).\n\n\n**Publish only four distinct shortcuts**\n\n: Although the API supports a combination of up to 15 static and dynamic shortcuts for your app, we\n recommend that you publish only four distinct shortcuts, to improve their visual appearance in the\n launcher.\n\n In addition to displaying shortcuts on the launcher, use the\n [Google Shortcuts Integration Library](/develop/ui/views/launch/shortcuts/creating-shortcuts#gsi-library)\n to display shortcuts on Google surfaces such as Google Assistant. This library supports pushing an\n unlimited number of dynamic shortcuts. If you are using this library to push a large number of\n shortcuts, we recommend setting the `rank` of the shortcuts that must appear in supported\n launchers by calling the\n [](/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setRank(int))`setRank()`\n method.\n\n\n**Limit shortcut description length**\n\n: The space in the menu that shows your app's shortcuts in the launcher is limited. When possible,\n limit the length of the \"short description\" of a shortcut to 10 characters and limit the length of\n the \"long description\" to 25 characters.\n\n For more information about labels for static shortcuts, read\n [Customize attribute values](/guide/topics/ui/shortcuts/creating-shortcuts#attribute-values).\n For dynamic and pinned shortcuts, read the reference documentation on\n [setLongLabel()](/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setLongLabel(java.lang.CharSequence))\n and\n [setShortLabel()](/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setShortLabel(java.lang.CharSequence)).\n\n\n**Maintain shortcut and action usage history**\n\n: For each shortcut you create, consider the different ways a user can accomplish the same task\n directly within your app. Call\n [reportShortcutUsed()](/reference/androidx/core/content/pm/ShortcutManagerCompat#reportShortcutUsed(android.content.Context,%20java.lang.String))\n in each of these situations so that the launcher maintains an accurate history of how frequently a\n user performs the actions representing your shortcuts.\n\n\n**Update shortcuts only when their meaning is retained**\n\n: When changing dynamic and pinned shortcuts, only call\n [updateShortcuts()](/reference/androidx/core/content/pm/ShortcutManagerCompat#updateShortcuts(android.content.Context,%20java.util.List%3Candroidx.core.content.pm.ShortcutInfoCompat%3E))\n when changing the information of a shortcut that retains its meaning. Otherwise, use one of the\n following methods, depending on the type of shortcut you're recreating:\n\n - Dynamic shortcuts: [pushDynamicShortcut()](/reference/androidx/core/content/pm/ShortcutManagerCompat#pushDynamicShortcut(android.content.Context,%20androidx.core.content.pm.ShortcutInfoCompat)).\n - Pinned shortcuts: [requestPinShortcut()](/reference/androidx/core/content/pm/ShortcutManagerCompat#requestPinShortcut(android.content.Context,%20androidx.core.content.pm.ShortcutInfoCompat,%20android.content.IntentSender)).\n\n For example, if you create a shortcut for navigating to a supermarket, it is appropriate to\n update the shortcut if the name of the supermarket changes but its location stays the same. If the\n user begins shopping at a different supermarket location, however, it's better to create a new\n shortcut.\n\n\n**Check dynamic shortcuts whenever you launch your app**\n\n: Dynamic shortcuts aren't preserved when the user restores their data onto a new device. For this\n reason, we recommend that you check the number of objects returned by\n [getDynamicShortcuts()](/reference/androidx/core/content/pm/ShortcutManagerCompat#getDynamicShortcuts(android.content.Context))\n each time you launch your app and re-publish dynamic shortcuts as needed, as shown in the code\n snippet in\n [Backup and restore](/guide/topics/ui/shortcuts/managing-shortcuts#backup-restore)."]]