Verwalten von Benutzerberechtigungen
Die Sensor-API bietet eine Methode, mit der Sie den Benutzer zur Eingabe von Berechtigungen für die Verwendung eines Sensors oder einer Sammlung von Sensoren auffordern können.
Da Sensoren vertrauliche Informationen anzeigen können, Windows benutzer müssen Sensoren aktivieren, bevor Ihr Programm auf Daten zugreifen kann.
Möglicherweise möchten Sie die Berechtigung anfordern, wenn Sie Sensoren verwenden möchten, für die der aktuelle SensorState SENSOR _ STATE ACCESS _ _ DENIED ist.
Rufen Sie zum Anfordern von Berechtigungen die ISensorManager::RequestPermissions-Methode auf. Wenn Sie diese Methode aufrufen, wird Windows Dialogfeld Sensoren aktivieren geöffnet, um den Benutzer zum Aktivieren der angeforderten Sensoren aufforderungen. In diesem Dialogfeld werden dem Benutzer die Namen der von Ihnen angeforderten Sensoren angezeigt. Der Benutzer kann eine der folgenden Optionen auswählen:
- Aktivieren Sie diese Sensoren.
- Aktivieren Sie diese Sensoren nicht.
- Öffnen Systemsteuerung, um weitere Optionen zu erhalten.
Wenn ein Benutzer diese Sensoren nicht aktivieren auswählt, zeigt Windows das Dialogfeld Sensoren aktivieren für diese speziellen Sensoren nicht erneut an, selbst wenn Ihr Programm RequestPermissions aufruft. Wenn der Benutzer eine andere Option auswählt, Windows das Dialogfeld angezeigt werden, wenn dies angefordert wird. Wenn Ihr Aufruf von RequestPermissions einige Sensoren enthält, die der Benutzer zuvor deaktiviert hält, entfernt die Sensor-API diese Sensoren aus der Liste der Sensoren, die dem Benutzer angezeigt werden.
Modales oder modusloses Verhalten
Die RequestPermissions-Methode verwendet ein boolesches Argument, das bestimmt, ob das Dialogfeld Sensoren aktivieren als modales oder modusloses Fenster angezeigt wird. Diese Einstellung wirkt sich auch darauf aus, ob das Verhalten des Rückgabecodes des Dialogfelds synchron oder asynchron ist.
Bei modalen Optionen hat das Dialogfeld den exklusiven Fokus zwischen Anwendungsfenstern, bis der Benutzer eine Option auswählt und der HRESULT-Rückgabecode aus Dem Aufruf von RequestPermissions die Benutzerauswahl angibt. Bei einem moduslosen Modus hat das Dialogfeld keinen exklusiven Fokus, und Ihr Aufruf von RequestPermissions wird sofort zurückgegeben. In diesem Fall gibt der Rückgabecode an, ob die Methode erfolgreich war, aber nicht verwendet werden kann, um die Auswahl des Benutzers zu ermitteln. Sie können dann ermitteln, welche Sensoren aktiviert wurden, indem Sie das OnStateChanged-Ereignis behandeln und jeden Sensor auf SENSOR _ STATE READY _ überprüfen.
Weitere Informationen zu Rückgabecodes finden Sie auf der Referenzseite zu RequestPermissions.
Bewährte Methode: Vermeiden mehrerer modeless-Aufrufe von RequestPermissions
Wiederholte modelose Aufrufe von RequestPermissions zeigen mehrere Instanzen des Dialogfelds Diese Sensoren aktivieren an und können den Bildschirm möglicherweise mit Dialogfeldern überfluten, was zu einer schlechten Benutzerfreundlichkeit führt. Wenn Sie der Meinung sind, dass nach dem ersten Aufruf von RequestPermissions möglicherweise andere Standortsensoren installiert sind, die einen weiteren Aufruf von RequestPermissions erfordern, sollten Sie entweder RequestPermissions modal aufrufen oder warten, bis alle Standortsensoren installiert sind, um einen moduslosen Aufruf zu senden.