La version 7.1.1 d'Android permet aux développeurs de définir des raccourcis spécifiques aux actions dans leurs applications, qui peuvent être affichés dans un lanceur d'applications. Ces raccourcis d'application permettent aux utilisateurs de lancer rapidement des tâches courantes ou recommandées dans une application.
Chaque raccourci fait référence à un intent qui lance une action spécifique dans l'application lorsque les utilisateurs sélectionnent le raccourci. Voici quelques exemples d'actions que vous pouvez exprimer en tant que raccourcis d'application:
- Accéder à un emplacement spécifique dans une application de cartographie
- Envoyer des messages à un ami dans une application de communication
- Lire le prochain épisode d'une série TV dans une application multimédia
- Charger le dernier point de sauvegarde dans une application de jeu
Exemples et source
Vous trouverez l'implémentation principale de cette fonctionnalité dans les fichiers suivants:
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
Les fichiers suivants fournissent des fonctionnalités de compatibilité (appelées API masquées dans ShortcutManager.java
):
packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
Par exemple, la version 3 du lanceur de projet Android Open Source prend en charge les raccourcis:
packages/apps/Launcher3/
Enfin, consultez les fichiers suivants pour obtenir la documentation Java publique.
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
Implémentation
Le lanceur AOSP 3 est déjà compatible avec les raccourcis. Si un partenaire dispose de son propre lanceur d'applications, celui-ci doit également prendre en charge les raccourcis.
- Lorsque l'utilisateur effectue un geste particulier (par exemple, un appui long) sur une icône d'application, le lanceur d'applications doit afficher les raccourcis dynamiques et manifestes associés à chaque icône d'activité du lanceur.
L'ordre de tri des raccourcis est défini dans la documentation Javadoc de ShorctutManager, dans la section "Ordre d'affichage des raccourcis". Par exemple, affichez d'abord les raccourcis du fichier manifeste, puis les raccourcis dynamiques. Les raccourcis sont triés par rang dans l'ordre croissant dans chaque groupe. - L'utilisateur doit pouvoir faire glisser chaque raccourci dynamique/fichier manifeste et l'épingler sur l'écran d'accueil.
- Les raccourcis épinglés doivent être sauvegardés et restaurés. (Pour en savoir plus, consultez la documentation Javadoc de ShortcutManager.)
- Une "réponse intégrée" sur une notification doit appeler en interne ShortcutManager.onApplicationActive.
De plus, certaines applications des services Google Mobile (GMS) disposent de raccourcis. Le lanceur d'OEM doit afficher des raccourcis pour ces applications et, dans l'idéal, prendre en charge l'épinglage (ou la création d'une icône de raccourci).
Consultez la source Launcher3 pour savoir comment interagir avec le framework pour les opérations ci-dessus.
Validation
Utilisez les tests CTS (Compatibility Test Suite) suivants pour vous assurer que votre version de la fonctionnalité (ShortcutManager et LauncherApps) fonctionne comme prévu:
cts/tests/tests/shortcutmanager/ cts/hostsidetests/shortcuts/
Vous trouverez les tests unitaires de l'implémentation AOSP ici:
frameworks/base/services/tests/servicestests/
y compris:
src/com/android/server/pm/ShortcutManagerTest*.java
Vous pouvez également utiliser le test du vérificateur CTS pour le gestionnaire de raccourcis:
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java