Méthode ISensorManager ::RequestPermissions (sensorsapi.h)
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
Par Windows 8, si une valeur est fournie à hParent, la boîte de dialogue est modale pour la fenêtre parente. Si hParent a la valeur NULL, la boîte de dialogue n’est pas modale. Le dialogue est toujours synchrone.
Pour Windows 7, HWND est géré par une fenêtre qui peut agir en tant que parent de la boîte de dialogue d’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 de boîte de dialogue. Doit avoir la valeur FALSE si hParent n’a pas la valeur Null.
Valeur retournée
Le tableau suivant décrit les codes de retour pour les résultats synchrones.
Code de retour | Description |
---|---|
|
L’utilisateur a activé les capteurs. |
|
L’utilisateur a choisi de désactiver les capteurs. |
|
L’utilisateur a annulé la boîte de dialogue ou refusé l’élévation de l’autorisation d’afficher la boîte de dialogue. |
Le tableau suivant décrit les codes de retour pour les résultats asynchrones.
Code de retour | Description |
---|---|
|
Tous les capteurs de la collection de capteurs étaient affichés pour que l’utilisateur puisse l’activer. S_OK |
|
Certains des capteurs de la collection de capteurs ont été affichés pour que l’utilisateur puisse l’activer. Certains capteurs ont peut-être été retirés de la collection ; par exemple, parce que l’utilisateur avait précédemment choisi de les garder désactivés. S_OK |
|
Un argument n’est pas valide. |
|
Un pointeur est null. |
|
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
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 à partir du thread d’interface utilisateur avec fModal défini sur TRUE.
Si une application ou un plug-in qui s’exécute en mode protégé, tel qu’un objet d’assistance de navigateur (BHO) pour Internet Explorer quand Internet Explorer s’exécute en mode protégé, appelle RequestPermissions et que l’utilisateur choisit l’option Ne pas activer ce 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 potentiellement indésirable chaque fois que l’application démarre.
Exemples
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 d’autres exemples illustrant 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);
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Aucun pris en charge |
Plateforme cible | Windows |
En-tête | sensorsapi.h |
Bibliothèque | Sensorsapi.lib |
DLL | Sensorsapi.dll |