Méthode ISensorManager ::RequestPermissions (sensorsapi.h)

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.

Ouvre une boîte de dialogue système pour demander à l’utilisateur l’autorisation d’accéder aux données du capteur.

Syntaxe

HRESULT RequestPermissions(
  [in] HWND              hParent,
  [in] ISensorCollection *pSensors,
  [in] BOOL              fModal
);

Paramètres

[in] hParent

Pour Windows 8, si hParent est fourni une valeur, la boîte de dialogue sera modale dans la fenêtre parente. Si hParent est NULL, la boîte de dialogue ne sera pas modale. La boîte de dialogue est toujours synchrone.

Pour Windows 7, HWND est géré sur une fenêtre qui peut agir en tant que parent de la boîte de dialogue Autorisations. Doit être NULL si fModal a la valeur TRUE.

[in] pSensors

Pour Windows 8, cette valeur n’est pas utilisée.

Pour Windows 7, pSensors est un pointeur vers l’interface ISensorCollection qui contient la liste des capteurs pour lesquels l’autorisation est demandée.

[in] fModal

Pour Windows 8, cette valeur n’est pas utilisée. Reportez-vous à hParent pour contrôler la modalité.

Pour Windows 7, fModal est un boOL qui spécifie le mode boîte de dialogue. Doit être FALSE si hParent n’est pas null.

Valeur Meaning
VRAI
Si hParent est NULL, la boîte de dialogue est modale et a donc le focus exclusif dans Windows jusqu’à ce que l’utilisateur réponde. L’appel est synchrone. Le code de retour indique le choix de l’utilisateur. Voir Valeur de retour.

Si hParent n’est pas null, l’appel est asynchrone et le thread appelant n’attend pas que la boîte de dialogue soit fermée. Le code de retour indique si l’appel a réussi. Voir Valeur de retour.

FAUX
La boîte de dialogue est sans mode. L’appel est asynchrone et le thread appelant n’attend pas que la boîte de dialogue soit fermée. Le code de retour indique si l’appel a réussi. Voir Valeur de retour.

Le paramètre hParent est ignoré.

Valeur retournée

Le tableau suivant décrit les codes de retour pour les résultats synchrones.

Code de retour Descriptif
S_OK
L’utilisateur a activé les capteurs.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
L’utilisateur a choisi de désactiver les capteurs.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
L’utilisateur a annulé la boîte de dialogue ou refusé l’élévation d’autorisation pour afficher la boîte de dialogue.
 

Le tableau suivant décrit les codes de retour pour les résultats asynchrones.

Code de retour Descriptif
S_OK
Tous les capteurs de la collection de capteurs ont été affichés pour permettre à l’utilisateur d’activer. La méthode a réussi.
S_FALSE
Certains des capteurs de la collection de capteurs ont été affichés pour permettre à l’utilisateur d’activer. Certains capteurs ont peut-être été supprimés de la collection ; par exemple, étant donné que l’utilisateur avait précédemment choisi de les conserver désactivés. La méthode a réussi.
E_INVALIDARG
Un argument n’est pas valide.
E_POINTER
Un pointeur a la valeur Null.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Tous les capteurs de la collection de capteurs ont été précédemment désactivés par l’utilisateur. La boîte de dialogue n’a pas été affichée.

Remarques

L’exécution d’un appel synchrone à partir du thread d’interface utilisateur d’une application Windows peut bloquer le thread d’interface utilisateur et rendre l’application moins réactive. Pour éviter cela, n’appelez pas cette méthode du thread d’interface utilisateur avec fModal défini sur TRUE.

Remarque  

Si une application ou un plug-in qui s’exécute en mode protégé, tel qu’un objet d’assistance du navigateur (BHO) pour Internet Explorer lorsque Internet Explorer s’exécute en mode protégé, appelle RequestPermissions et que l’utilisateur choisit l’option Ne pas activer cette option de capteur d’emplacement dans la boîte de dialogue, Windows affiche à nouveau la boîte de dialogue si RequestPermissions est appelé à nouveau par le même utilisateur. Les applications qui s’exécutent en mode protégé peuvent choisir d’éviter d’appeler RequestPermissions au démarrage afin que l’utilisateur ne soit pas soumis à une boîte de dialogue indésirable possible chaque fois que l’application démarre.

 

Examples

L’exemple de code suivant demande des autorisations pour tous les capteurs récupérés à partir du gestionnaire de capteurs, par type, à l’aide d’un appel de méthode asynchrone. La plateforme invite uniquement l’utilisateur à activer les capteurs qui ne sont pas déjà activés. Pour déterminer si l’utilisateur a activé des capteurs dans ce cas, vous devez gérer l’événement ISensorEvents ::OnStateChanged . Pour obtenir des exemples supplémentaires qui montrent comment demander des autorisations, consultez Demande d’autorisations utilisateur.

// Get the sensor collection.
hr = pSensorManager->GetSensorsByType(SAMPLE_SENSOR_TYPE_TIME, &pSensorColl);

if(SUCCEEDED(hr))
{
    // Request permissions for all sensors
    // in the collection.
    hr = pSensorManager->RequestPermissions(0, pSensorColl, FALSE);
}


Spécifications

Requirement Valeur
Client minimum requis Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Aucun pris en charge
plateforme cible Fenêtres
Header sensorsapi.h
Library Sensorsapi.lib
DLL Sensorsapi.dll

Voir aussi

ISensorManager

Gestion des autorisations utilisateur

Demande d’autorisations utilisateur