Partager via


Gestion des autorisations utilisateur

L’API Sensor fournit une méthode que vous pouvez utiliser pour demander à l’utilisateur des autorisations pour 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 aux données.

Vous pouvez demander l’autorisation lorsque vous souhaitez utiliser des capteurs pour lesquels le 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 Panneau de configuration pour plus d’options.

Si un utilisateur choisit Ne pas activer ces capteurs, Windows n’affiche plus 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 à la demande. Si votre appel à RequestPermissions contient des capteurs que l’utilisateur a précédemment choisi de garder désactivés, l’API Capteur 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 la forme d’une 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.

Lorsqu’elle est modale, la boîte de dialogue 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. Quand elle n’est pas mode, la boîte de dialogue n’a pas de focus exclusif et votre appel à RequestPermissions est retourné 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 .

Bonne pratique : Éviter plusieurs appels sans mode à RequestPermissions

Les appels répétés sans mode à RequestPermissions affichent plusieurs instances de la boîte de dialogue Activer ces capteurs et peuvent potentiellement inonder l’écran de boîtes de dialogue, ce qui entraîne une expérience utilisateur médiocre. 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 soit appeler RequestPermissions modalement, soit attendre que tous les capteurs d’emplacement soient installés pour passer un appel sans mode.

Confidentialité et sécurité dans la plateforme de capteurs et d’emplacements

Demande d’autorisations utilisateur