Recommandations en matière de périphériques qui accèdent aux données personnelles

Applies to Windows and Windows Phone

Les microphones, les caméras, les services de localisation et les services de messagerie texte peuvent accéder aux données personnelles de l’utilisateur ou coûter cher à l’utilisateur. De ce fait, on les considère comme étant des périphériques sensibles. Les applications du Windows Store comportent des fonctionnalités permettant de garantir à l’utilisateur qu’il contrôle les applications auxquelles ont accès ces périphériques sensibles. Cette rubrique décrit les recommandations à suivre pour concevoir les applications du Windows Store en prenant en compte la manière dont un utilisateur peut activer et désactiver l’accès aux périphériques.

Exemples

Les autorisations pour les applications du Windows Store d’utiliser les périphériques sensibles sont contrôlées par application et par utilisateur. Les utilisateurs contrôlent les autorisations par le biais de l’invite de consentement ou de l’icône Paramètres. Les illustrations ci-dessous présentent l’interface utilisateur associée aux invites de consentement ainsi que la section Autorisations du volet Paramètres.

Invite de consentement

L’image ci-dessous est un exemple d’invite de consentement dans une application du Windows Store. L’invite s’affiche lorsqu’une application tente d’accéder pour la première fois à un périphérique sensible. Elle permet à l’utilisateur de choisir d’empêcher ou d’autoriser l’application à accéder à la fonctionnalité du périphérique. Windows retient la réponse afin que ce message ne soit plus affiché pour la même application.

Invite de consentement dans une application du Windows Store

Icône Paramètres

L’icône Paramètres peut également être utilisée pour contrôler l’accès de chaque application aux périphériques sensibles. L’utilisateur appuie sur l’icône Paramètres pour ouvrir le volet Paramètres (SettingsPane). L’icône Paramètres est illustrée ici sur le côté droit de l’application :

Icône Paramètres

Windows fournit un menu volant Autorisations par défaut pour toutes les applications du Windows Store. Lorsque les utilisateurs cliquent sur Autorisations dans le volet Paramètres, le menu volant Autorisations s’affiche. Ils peuvent alors activer ou désactiver l’accès de l’application aux fonctionnalités du périphérique sensible. Voici un exemple de menu volant Autorisations pour une application météo :

Menu volant Paramètres qui fournit les paramètres de localisation de l’application

Pratiques conseillées et déconseillées

  • Le premier appel pour commencer à utiliser un périphérique sensible doit être effectué sur le thread d’interface utilisateur principal afin que l’invite de consentement soit présentée à l’utilisateur. Si aucune invite de consentement ne s’affiche, l’utilisateur ne pourra pas autoriser l’accès au périphérique demandé par l’application. Assurez-vous que :
    • votre application n’utilise pas de tâche en arrière-plan lors de l’accès initial au périphérique ;
    • votre application en JavaScript et HTML n’utilise pas en premier l’objet qui accède au périphérique dans le gestionnaire d’activation de l’application ;
    • votre application en C#/VB/C++ et XAML utilise en premier l’objet qui accède au périphérique dans MainPage.xaml.cs, et pas App.xaml.cs.
  • Si l’accès au périphérique sensible n’est pas nécessaire pour effectuer certaines tâches dans votre application, n’y accédez pas tant que l’utilisateur ne le demande pas explicitement. Prenons l’exemple d’une application de réseau social dotée des boutons "Indiquer ma localisation" et "Prendre une photo de profil". Cette application ne doit pas accéder au service de localisation ou à l’appareil photo tant que l’utilisateur ne clique pas sur le bouton correspondant.
  • Si la fonction principale de votre application nécessite l’accès au périphérique sensible, l’application peut y accéder au démarrage. Par exemple, une application de capture de vidéos en direct a besoin de la caméra pour remplir sa fonction principale. Dans ce cas, il est logique que l’application demande immédiatement l’accès au périphérique.
  • Ne lancez pas par programme l’affichage de la page Autorisations dans le volet Paramètres.

Lorsque l’accès à un périphérique est désactivé

L’accès à un périphérique peut être désactivé de trois façons : l’utilisateur refuse l’accès à l’invite de consentement, l’utilisateur bloque l’accès dans le menu volant Autorisations du volet Paramètres ou le périphérique n’est pas disponible dans le système. Suivez les recommandations ci-dessous si votre application n’a pas accès à un périphérique sensible :

  • Lorsqu’un utilisateur tente d’accéder à une fonctionnalité du périphérique qui n’est pas disponible, avertissez-le par une notification. L’utilisateur doit être averti de la non-disponibilité de la fonctionnalité.
  • Affichez de manière visible la notification de désactivation du périphérique à l’intention de l’utilisateur.
  • Lorsque la fonctionnalité désactivée n’est pas nécessaire à la fonction principale de l’application, indiquez-le à l’utilisateur par le biais d’un menu volant ou d’un message inséré.
  • Gérez l’erreur d’API qui se produit lorsque votre application tente d’accéder à une fonctionnalité de périphérique désactivée. Voir la section Référence de cette rubrique pour obtenir plus d’informations sur les appels de méthode susceptibles de retourner des erreurs qui indiquent que l’application n’a pas accès à un périphérique.
  • Affichez un message pour informer les utilisateurs que la fonctionnalité du périphérique est désactivée et leur indiquer le moyen de la réactiver dans le menu volant Autorisations du volet Paramètres. Pour obtenir des exemples de notification de la désactivation d’un périphérique, voir Indications d’utilisation supplémentaires.
  • Fournissez l’interface utilisateur permettant à l’utilisateur d’initier à nouveau l’accès au périphérique si le périphérique est réactivé. Instanciez ou initialisez à nouveau l’objet qui accède au périphérique en utilisant cette interface utilisateur. Par exemple, une application de mappage peut fournir un bouton pour actualiser la localisation actuelle. Le bouton doit instancier un nouvel objet Geolocator.
  • N’utilisez pas de notifications pour informer l’utilisateur de la non-disponibilité d’une fonctionnalité du périphérique.
  • N’affichez pas un message d’erreur pour une fonctionnalité de périphérique qui n’a pas encore été demandée par l’utilisateur. Par exemple, si un site de réseau social dispose d’une option permettant la localisation lorsque l’utilisateur publie des messages, mais que l’utilisateur n’a pas choisi de partager la localisation, n’affichez pas de message d’erreur lors de la publication des messages.

Indications d’utilisation supplémentaires

Exemples de messages d’erreur

Raison de la désactivation du périphériqueFormat de l’exemple du message d’erreur

L’utilisateur a bloqué l’accès lors de l’invite de consentement ou par le biais de l’icône Paramètres.

« Votre fonction de <device capability> est actuellement désactivée. Pour modifier le paramètre de votre <device capability>, ouvrez l’icône Paramètres et appuyez sur les autorisations souhaitées. Vous devez ensuite <enable action> pour pouvoir utiliser <device capability> à nouveau. »

  • Remplacez <device capability> par la webcam, le microphone, la géolocalisation ou la messagerie texte.
  • Remplacez <enable action> par l’action que l’utilisateur doit effectuer dans l’interface utilisateur pour réinitialiser l’accès à la fonctionnalité, par exemple « cliquer sur un bouton ».

La fonctionnalité du périphérique est absente du système.

« La fonctionnalité <device capability> requise n’est pas installée sur votre système. »

 

L’interface utilisateur permettant de présenter le message informant de la désactivation d’une fonctionnalité du périphérique dépend de l’importance de cette dernière pour le fonctionnement de l’application. Les exemples qui suivent montrent comment afficher des messages sur les fonctionnalités du périphérique.

Affichage d’un menu volant ou d’un texte inséré si le périphérique n’est pas essentiel

Si le périphérique sensible n’est pas essentiel pour votre application, affichez le message dans un menu volant au point d’invocation ou dans un texte inséré non bloquant.

Par exemple, si une application de cartographie est dotée d’un bouton qui indique l’emplacement actuel et si l’utilisateur clique sur ce bouton quand la fonctionnalité requise du périphérique est désactivée, l’application doit alors afficher le message d’erreur dans un menu volant à proximité du bouton ou dans du texte inséré.

La capture d’écran suivante illustre une application qui affiche un message d’erreur dans un menu volant. Le message est le suivant : « Votre emplacement est introuvable. Modifiez vos autorisations dans les paramètres pour permettre à l’application de cartographie d’y accéder, puis redémarrez l’application ».

Invite de consentement dans une application du Windows Store

Affichage d’une boîte de dialogue si la fonctionnalité du périphérique est essentielle

Si la fonction principale de l’application nécessite l’accès au périphérique, affichez un message d’erreur dans une boîte de message (MessageDialog). Pour obtenir un exemple complet, voir Exemple de boîte de message.

Dans la capture d’écran qui suit, la fonction principale de l’application de caméra nécessite un accès à la webcam et au microphone. L’application fait alors apparaître un message qui demande à l’utilisateur d’activer la caméra.

Message adressé à un utilisateur dont la localisation doit être activée

Référence

Ce tableau répertorie les informations d’API pour la désactivation et la réactivation des fonctionnalités de périphériques sensibles.

FonctionnalitéInformations sur l’activation et la désactivation
Localisation

La méthode GetGeopositionAsync ou un gestionnaire d’événement pour l’événement PositionChanged déclenche une invite de consentement.

Voir Guidelines for location-aware apps pour plus d’informations sur la façon de gérer l’activation ou la désactivation de la localisation dans votre application.

Pour obtenir des instructions pas à pas et des exemples de code, voir Détection de la géolocalisation (applications du Windows Store en JavaScript et HTML) ou Détection de la géolocalisation (applications du Windows Store en C#/VB/C++ et XAML).

Webcam ou microphone

Pour les applications qui utilisent la méthode Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync pour capturer des photos ou des vidéos à partir d’une caméra, il convient de tenir compte des éléments suivants :

  • Appel La méthode Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync déclenche une invite de consentement lors de la première exécution de l’application. La méthode Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync ne retourne pas d’erreur si la fonctionnalité de webcam est désactivée. L’interface utilisateur de capture de la caméra affiche à la place un message indiquant que la fonctionnalité de webcam est désactivée.

Les applications qui utilisent la classe Windows.Media.Capture.MediaCapture pour afficher un aperçu ou capturer de l’audio, de la vidéo ou des photos doivent pouvoir résoudre les problèmes suivants :

  • Les gestionnaires d’erreurs des méthodes asynchrones de la classe MediaCapture reçoivent une erreur E_ACCESSDENIED si l’utilisateur n’a pas donné son autorisation, et une erreur HRESULT_FROM_WIN32(ERROR_FILE_HANDLE_REVOKED) si l’autorisation a été révoquée.
  • Appelez à nouveau la méthode InitializeAsync pour accéder à la caméra, si l’utilisateur réactive l’accès à la webcam après l’avoir révoqué. Par exemple, si le gestionnaire d’erreurs, dans le cas d’une erreur HRESULT_FROM_WIN32(ERROR_FILE_HANDLE_REVOKED), demande à l’utilisateur de réactiver la webcam à l’aide de l’icône Paramètres, puis d’appuyer sur un bouton pour redémarrer l’aperçu d’une vidéo. Le code-behind associé au bouton doit appeler la méthode InitializeAsync avant d’effectuer tout autre appel.

Pour obtenir des didacticiels sur l’utilisation de Windows.Media.Capture, voir Ajout d’éléments multimédias (applications du Windows Store en JavaScript et HTML) ou Ajout d’éléments multimédias (applications du Windows Store en C#/VB/C++ et XAML).

Pour les applications qui utilisent l’interface IAudioClient2, un appel à ActivateAudioInterfaceAsync déclenche une invite de consentement.

 

Rubriques associées

Pour les développeurs (HTML)
DeviceCapability
MessageDialog
Déclarations des fonctionnalités d’application
Comment spécifier manuellement des fonctionnalités de périphérique dans un manifeste de package
Quickstart: Adding a flyout
Pour les développeurs (XAML)
DeviceCapability
MessageDialog
Déclarations des fonctionnalités d’application
Comment spécifier manuellement des fonctionnalités de périphérique dans un manifeste de package
Ajout de menus volants et de menus
Exemples
Exemple de boîte de message

 

 

Afficher:
© 2014 Microsoft