Atajos de aplicaciones

La versión Android 7.1.1 permite a los desarrolladores definir atajos de acciones específicas en sus aplicaciones que se pueden mostrar en un iniciador. 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 puedes expresar como accesos directos a aplicaciones incluyen:

  • Llevar 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 siguiente episodio de un programa de televisión en una aplicación multimedia
  • Cargando 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 proporcionan 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 del Lanzador de proyectos de código abierto de Android admite accesos directos:

packages/apps/Launcher3/

Finalmente, consulte 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 atajos. 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 (por ejemplo, una pulsación prolongada) en el ícono de una aplicación, el iniciador debe mostrar los accesos directos dinámicos y manifiestos asociados con cada ícono de actividad del iniciador.
    El orden de clasificación de los accesos directos se define en el Javadoc de ShorctutManager dentro de la sección "Orden de visualización de los 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/manifiesto y "fijarlo" a la pantalla de inicio.
  • Se debe realizar una copia de seguridad y restaurar los accesos directos fijados. (Consulte el javadoc de ShortcutManager para obtener más detalles)
  • Hacer una "respuesta en línea" en la notificación debería llamar internamente a ShortcutManager.onApplicationActive.

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

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

Validación

Utilice las siguientes pruebas del conjunto de pruebas de compatibilidad de Android (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