Gestione delle autorizzazioni utente
L'API Sensor fornisce un metodo che è possibile usare per richiedere all'utente le autorizzazioni di usare un sensore o 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 sensorState corrente è SENSOR_STATE_ACCESS_DENIED.
Per richiedere le autorizzazioni, chiamare il metodo ISensorManager::RequestPermissions . Quando si chiama 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.
- Aprire 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 i 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 sensore rimuoverà questi sensori dall'elenco dei sensori visualizzati dall'utente.
Comportamento modale o modeless
Il metodo RequestPermissions accetta un argomento booleano che determina se la finestra di dialogo Abilita sensori viene visualizzata come finestra modale o non modale. Questa impostazione influisce anche sul comportamento del codice restituito della finestra di dialogo è sincrono o asincrono.
Quando modale, la finestra di dialogo ha lo stato attivo esclusivo tra le finestre dell'applicazione fino a quando l'utente non sceglie un'opzione e il codice restituito HRESULT dalla chiamata a RequestPermissions indica la scelta dell'utente. Se non è possibile, la finestra di dialogo non ha lo stato attivo esclusivo e la chiamata a RequestPermissions viene restituita 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 altre informazioni sui codici restituiti, vedere la pagina di riferimento RequestPermissions .
Procedura consigliata: evitare più chiamate senza modalità a RequestPermissions
Le chiamate senza modalità ripetute a RequestPermissions visualizzano più istanze della finestra di dialogo Abilita questi sensori e possono potenzialmente inondare lo schermo con finestre di dialogo, con conseguente scarsa esperienza utente. Se si ritiene che dopo la prima chiamata a RequestPermissions, altri sensori di posizione potrebbero essere installati, richiedendo un'altra chiamata a RequestPermissions, è necessario chiamare RequestPermissions in modo modificato o attendere fino a quando non vengono installati tutti i sensori di posizione per effettuare una chiamata senza modalità.
Argomenti correlati