Android M permet davantage de connectiviter entre les applications et celle-ci est illustré avec la possibilité de traduire un texte sélectionné dans son application à l'aide de l'application Traduction. Présentation de son intégration dans cet article.
La traduction est basée sur Google Traduction et ses 90 langues. Pour que l'utilisateur est accès à la traduction in-app, il est nécessaire que l'application de traduction soit installé : https://play.google.com/store/apps/details?id=com.google.android.apps.translate.
Il est aussi nécessaire que l'appareil de l'utilisateur soit sous Android M.
Google présente deux exemples d'intégrations dans l'application TripAdvisor :
Les applications Android utilisant le comportement text selection ont déjà ce comportement d'activer.
Pour les développeurs qui ont créé un custom text selection pour leur application peuvent facilement implémenter cette fonctionnalité : scanner via le PacketManager tous les packages aillant l'intent filter PROCESS_TEXT (par exemple com.google.android.apps.translate s'il est installé) et les ajoutés comme des MenuItems dans la TextView selection de son application.
Pour intérroger le package Manager, commencer par construire une intent avec l'action :
Puis récupérer les activity :
Ajouter un item pour chaque activity retourner et lui attacher un intent pour lancer l'action :
Le label de chaque item peut être récupéré avec :
L'intent de chaque item peut être créé en réutilisant l'intent filter qui a été défini précédemment et ajout des données manquantes :