Atajos de aplicaciones

La versión de Android 7.1.1 permite a los desarrolladores definir accesos directos específicos de acción en sus aplicaciones que se pueden mostrar en un lanzador. Estos atajos de aplicaciones permiten a los usuarios iniciar rápidamente tareas comunes o recomendadas dentro de una aplicación.

Cada atajo hace referencia a una intención que inicia una acción específica en la aplicación cuando los usuarios seleccionan el atajo. Ejemplos de acciones que puede expresar como accesos directos de aplicaciones incluyen:

  • Navegar a los usuarios a una ubicación particular en una aplicación de mapas
  • Enviar mensajes a un amigo en una aplicación de comunicación
  • Reproducir el próximo episodio de un programa de televisión en una aplicación multimedia
  • Cargar el último punto de guardado en una aplicación de juegos

Ejemplos y fuente

Puede encontrar la implementación principal de esta característica en los siguientes archivos:

frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java
frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java
frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java
frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

Con los siguientes archivos que brindan funciones de soporte (llamadas API ocultas en ShortcutManager.java ):

packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java

Y, por ejemplo, la versión 3 de Android Open Source Project Launcher admite accesos directos:

packages/apps/Launcher3/

Finalmente, vea los siguientes archivos para Javadoc público.

frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

Implementación

El AOSP Launcher3 ya admite accesos directos. En los casos en que un socio tenga su propio iniciador, ese iniciador también debería admitir accesos directos.

  • Cuando el usuario realiza un determinado gesto (p. ej., pulsación prolongada) en el icono de una aplicación, el iniciador debe mostrar los accesos directos dinámicos y manifiestos asociados con cada icono de actividad del iniciador.
    El orden de clasificación de accesos directos se define en el Javadoc de ShorctutManager dentro de la sección "Orden de visualización de accesos directos". Por ejemplo, muestre primero los atajos de manifiesto y luego los atajos dinámicos. Los atajos están ordenados por rango en orden ascendente dentro de cada grupo.
  • El usuario debería poder arrastrar cada acceso directo dinámico/de manifiesto y "anclarlo" a la pantalla de inicio.
  • Los accesos directos anclados deben respaldarse y restaurarse. (Vea el javadoc de ShortcutManager para más detalles)
  • Hacer una "respuesta en línea" en la notificación debe llamar internamente a ShortcutManager.onApplicationActive.

Además, algunas aplicaciones de Google Mobile Services (GMS) tienen accesos directos. El lanzador OEM debería mostrar accesos directos para ellos e idealmente admitir " fijar " (o crear un icono de acceso directo) también.

Consulte la fuente de Launcher3 para obtener detalles sobre cómo interactuar con el marco para las operaciones anteriores.

Validación

Use las siguientes pruebas de Android Compatibility Test Suite (CTS) para asegurarse de que su versión de la función (ShortcutManager y LauncherApps) funcione según lo previsto:

cts/tests/tests/shortcutmanager/
cts/hostsidetests/shortcuts/

Y encuentre las pruebas unitarias para la implementación de AOSP aquí:

frameworks/base/services/tests/servicestests/

Que incluye:

src/com/android/server/pm/ShortcutManagerTest*.java

También puede emplear la prueba CTS Verifier para el administrador de accesos directos:

cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java