La versión de Android 7.1.1 permite a los desarrolladores definir accesos directos específicos para acciones en sus apps que se pueden mostrar en un selector. Estos accesos directos de la app permiten a los usuarios iniciar rápidamente tareas comunes o recomendadas dentro de una app.
Cada acceso directo hace referencia a un intent que inicia una acción específica en la app cuando los usuarios lo seleccionan. Entre los ejemplos de acciones que puedes expresar como accesos directos de la app, se incluyen los siguientes:
- Llevar a los usuarios a una ubicación específica en una app de mapas
- Enviar mensajes a un amigo en una app de comunicación
- Reproducir el siguiente episodio de un programa de TV en una app multimedia
- Cargar el último punto guardado en una app de videojuegos
Ejemplos y fuente
Puedes encontrar la implementación principal de esta función 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 compatibilidad (llamadas APIs 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
Por ejemplo, la versión 3 del selector de proyectos de código abierto de Android admite atajos:
packages/apps/Launcher3/
Por último, consulta los siguientes archivos para ver la documentación Javadoc pública.
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
AOSP Launcher3 ya admite combinaciones de teclas. En los casos en que un socio tenga su propio selector, este también debe admitir atajos.
- Cuando el usuario realiza un gesto determinado (p.ej., mantener presionado) en el ícono de una app, el selector debe mostrar los accesos directos dinámicos y del manifiesto asociados con cada ícono de actividad del selector.
El orden de clasificación de los accesos directos se define en el Javadoc de ShorctutManager en la sección "Orden de visualización de los accesos directos". Por ejemplo, muestra primero las combinaciones de teclas del manifiesto y, luego, las combinaciones de teclas dinámicas. Los accesos directos se ordenan por clasificación en orden ascendente dentro de cada grupo. - El usuario debe poder arrastrar cada acceso directo dinámico o de manifiesto y "fijarlo" en la pantalla principal.
- Se debe crear una copia de seguridad de los atajos fijados y restablecerlos. (consulta el javadoc de ShortcutManager para obtener más detalles).
- Hacer una "respuesta intercalada" en Notification debería llamar internamente a ShortcutManager.onApplicationActive.
Además, algunas apps de los Servicios de Google para dispositivos móviles (GMS) tienen atajos. El selector del OEM debería mostrar atajos para ellos y, de preferencia, admitir la "fijación" (o la creación de un ícono de acceso directo).
Consulta la fuente de Launcher3 para obtener detalles sobre cómo interactuar con el framework para las operaciones anteriores.
Validación
Usa las siguientes pruebas del conjunto de pruebas de compatibilidad de Android (CTS) para asegurarte de que la versión de la función (ShortcutManager y LauncherApps) funcione según lo previsto:
cts/tests/tests/shortcutmanager/ cts/hostsidetests/shortcuts/
Y encuentra las pruebas de unidades para la implementación de AOSP aquí:
frameworks/base/services/tests/servicestests/
Esto incluye lo siguiente:
src/com/android/server/pm/ShortcutManagerTest*.java
También puedes usar la prueba del verificador del CTS para el administrador de combinaciones de teclas:
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java