Partager via


Gestion des autorisations utilisateur

Important

Utilisez plutôt l’API de capteur UWP .

L’API de capteur COM est déconseillée et ne doit pas être utilisée dans les nouvelles applications. Aucune fonctionnalité ou amélioration supplémentaire n’est planifiée et la prise en charge sera limitée.

L’API Sensor fournit une méthode permettant de demander à l’utilisateur la permission d’utiliser un capteur ou une collection de capteurs.

Étant donné que les capteurs peuvent révéler des informations sensibles, Windows exige que les utilisateurs activent les capteurs avant que votre programme puisse accéder à n’importe quelle donnée.

Vous pouvez demander l’autorisation lorsque vous souhaitez utiliser des capteurs pour lesquels sensorState actuel est SENSOR_STATE_ACCESS_DENIED.

Pour demander des autorisations, appelez la méthode ISensorManager ::RequestPermissions . Lorsque vous appelez cette méthode, Windows ouvre la boîte de dialogue Activer les capteurs pour inviter l’utilisateur à activer les capteurs que vous avez demandés. Cette boîte de dialogue fournit à l’utilisateur les noms des capteurs que vous avez demandés. L’utilisateur peut choisir l’une des options suivantes :

  • Activez ces capteurs.
  • N’activez pas ces capteurs.
  • Ouvrez le Panneau de configuration pour plus d’options.

Si un utilisateur choisit Ne pas activer ces capteurs, Windows n’affiche pas à nouveau la boîte de dialogue Activer les capteurs pour ces capteurs particuliers, même si votre programme appelle RequestPermissions. Si l’utilisateur choisit une autre option, Windows autorise l’affichage de la boîte de dialogue lors de la demande. Si votre appel à RequestPermissions contient certains capteurs que l’utilisateur a précédemment choisi de désactiver, l’API Sensor supprime ces capteurs de la liste des capteurs que l’utilisateur voit.

La méthode RequestPermissions prend un argument booléen qui détermine si la boîte de dialogue Activer les capteurs s’affiche sous forme de fenêtre modale ou sans mode. Ce paramètre affecte également si le comportement du code de retour de la boîte de dialogue est synchrone ou asynchrone.

Lorsque la boîte de dialogue est modale, elle a le focus exclusif entre les fenêtres d’application jusqu’à ce que l’utilisateur choisisse une option, et le code de retour HRESULT de votre appel à RequestPermissions indique le choix de l’utilisateur. En mode non-modal, la boîte de dialogue ne possède pas le focus exclusif et votre appel à RequestPermissions retourne immédiatement. Dans ce cas, le code de retour indique si la méthode a réussi, mais ne peut pas être utilisée pour déterminer le choix de l’utilisateur. Vous pouvez ensuite déterminer quels capteurs ont été activés en gérant l’événement OnStateChanged et en vérifiant chaque capteur pour SENSOR_STATE_READY.

Pour plus d’informations sur les codes de retour, consultez la page de référence RequestPermissions .

Meilleure pratique : Éviter plusieurs appels sans mode vers RequestPermissions

Les appels répétés sans mode modal à RequestPermissions afficheront plusieurs exemplaires de la boîte de dialogue Activer ces capteurs, et pourraient potentiellement inonder l’écran de fenêtres de dialogue, entraînant ainsi une mauvaise expérience utilisateur. Si vous pensez qu’après votre premier appel à RequestPermissions, d’autres capteurs d’emplacement peuvent être installés, nécessitant un autre appel à RequestPermissions, vous devez appeler RequestPermissions modalement ou attendre que tous les capteurs d’emplacement soient installés pour effectuer un appel sans mode.

Confidentialité et sécurité dans la plateforme capteur et emplacement

Demande d’autorisations utilisateur