Condividi tramite


Gestione delle autorizzazioni utente

Importante

Usare invece l'API sensore UWP .

L'API del sensore basata su COM è deprecata e non deve essere usata nelle nuove applicazioni. Non sono pianificate funzionalità o miglioramenti aggiuntivi e il supporto sarà limitato.

L'API Sensor fornisce un metodo che è possibile usare per richiedere all'utente le autorizzazioni per l'uso di un sensore o di una raccolta di sensori.

Poiché i sensori possono rivelare informazioni riservate, Windows richiede che gli utenti abilitino i sensori prima che il programma possa accedere a qualsiasi dato.

È possibile richiedere l'autorizzazione quando si desidera usare sensori per i quali il SensorState correnteè SENSOR_STATE_ACCESS_DENIED.

Per richiedere le autorizzazioni, chiamare il metodo ISensorManager::RequestPermissions. Quando chiami questo metodo, Windows apre la finestra di dialogo Abilita sensori per richiedere all'utente di abilitare i sensori richiesti. Questa finestra di dialogo fornisce all'utente i nomi dei sensori richiesti. L'utente può scegliere una delle opzioni seguenti:

  • Abilitare questi sensori.
  • Non abilitare questi sensori.
  • Apri pannello di controllo per altre opzioni.

Se un utente sceglie Non abilitare questi sensori, Windows non visualizzerà di nuovo la finestra di dialogo Abilita sensori per tali sensori specifici, anche se il programma chiama RequestPermissions. Se l'utente sceglie qualsiasi altra opzione, Windows consentirà di visualizzare la finestra di dialogo quando richiesto. Se la chiamata a RequestPermissions contiene alcuni sensori che l'utente ha scelto in precedenza di mantenere disabilitato, l'API Sensor rimuoverà questi sensori dall'elenco dei sensori visualizzati dall'utente.

Il metodo RequestPermissions prende un argomento booleano che determina se la finestra di dialogo Abilita sensori viene visualizzata come finestra modale o senza modalità. Questa impostazione influisce anche sul comportamento del codice restituito della finestra di dialogo è sincrono o asincrono.

Quando modale, la finestra di dialogo ha il focus esclusivo tra le finestre dell'applicazione fino a quando l'utente sceglie un'opzione, e il codice restituito HRESULT dalla chiamata a RequestPermissions indica la scelta dell'utente. In modalitàless, la finestra di dialogo non ha lo stato attivo esclusivo e la chiamata a RequestPermissions restituisce immediatamente. In questo caso, il codice restituito indica se il metodo è riuscito, ma non può essere usato per verificare la scelta dell'utente. È quindi possibile determinare quali sensori sono stati abilitati gestendo l'evento OnStateChanged e controllando ogni sensore per SENSOR_STATE_READY.

Per ulteriori informazioni sui codici di ritorno, vedere la pagina di riferimento RequestPermissions.

Procedura consigliata: evitare più chiamate non modali al metodo RequestPermissions

Le chiamate modeless ripetute a RequestPermissions visualizzeranno più istanze della finestra di dialogo Abilita questi sensori e possono potenzialmente inondare lo schermo con finestre di dialogo, causando una scarsa esperienza utente. Se ritieni che dopo la prima chiamata a RequestPermissions, potrebbero essere installati altri sensori di posizione, richiedendo un'altra chiamata a RequestPermissions, è consigliabile chiamare RequestPermissions in modo modale, oppure attendere che tutti i sensori di posizione siano installati per effettuare una chiamata in modo non modale.

La Privacy e Sicurezza nella piattaforma di sensori e localizzazione

Richiesta di autorizzazioni utente