ISensorManager::RequestPermissions-Methode (sensorsapi.h)
Öffnet ein Systemdialogfeld, um Benutzerberechtigungen für den Zugriff auf Sensordaten anzufordern.
Syntax
HRESULT RequestPermissions(
[in] HWND hParent,
[in] ISensorCollection *pSensors,
[in] BOOL fModal
);
Parameter
[in] hParent
Wenn für Windows 8 ein Wert für hParent bereitgestellt wird, ist das Dialogfeld modal zum übergeordneten Fenster. Wenn hParentNULL ist, ist das Dialogfeld nicht modal. Das Dialogfeld ist immer synchron.
Für Windows 7 wird HWND für ein Fenster verarbeitet, das als übergeordnetes Element für das Dialogfeld "Berechtigungen" fungieren kann. Muss NULL sein, wenn fModalTRUE ist.
[in] pSensors
Für Windows 8 wird dieser Wert nicht verwendet.
Für Windows 7 ist pSensors ein Zeiger auf die ISensorCollection-Schnittstelle , die die Liste der Sensoren enthält, für die eine Berechtigung angefordert wird.
[in] fModal
Für Windows 8 wird dieser Wert nicht verwendet. Informationen zur Steuerung der Modalität finden Sie unter hParent .
Für Windows 7 ist fModal ein BOOL , das den Dialogfeldmodus angibt. Muss FALSE sein, wenn hParent nicht NULL ist.
Rückgabewert
In der folgenden Tabelle werden Rückgabecodes für synchrone Ergebnisse beschrieben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Der Benutzer hat die Sensoren aktiviert. |
|
Der Benutzer hat sich dafür entschieden, die Sensoren zu deaktivieren. |
|
Der Benutzer hat das Dialogfeld abgebrochen oder die Berechtigungserweiterung zum Anzeigen des Dialogfelds verweigert. |
In der folgenden Tabelle werden Rückgabecodes für asynchrone Ergebnisse beschrieben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Alle Sensoren in der Sensorsammlung wurden für den Benutzer angezeigt, um sie zu aktivieren. Die Methode wurde erfolgreich ausgeführt. |
|
Einige der Sensoren in der Sensorsammlung wurden für den Benutzer angezeigt, um sie zu aktivieren. Einige Sensoren wurden möglicherweise aus der Sammlung entfernt; Beispielsweise, weil der Benutzer sich zuvor dafür entschieden hatte, sie deaktiviert zu lassen. Die Methode wurde erfolgreich ausgeführt. |
|
Ein Argument ist ungültig. |
|
Ein Zeiger ist NULL. |
|
Alle Sensoren in der Sensorsammlung wurden zuvor vom Benutzer deaktiviert. Das Dialogfeld wurde nicht angezeigt. |
Hinweise
Durch einen synchronen Aufruf aus dem Benutzeroberflächenthread einer Windows-Anwendung kann der UI-Thread blockiert und die Reaktionsfähigkeit der Anwendung verringert werden. Um dies zu verhindern, rufen Sie diese Methode nicht aus dem UI-Thread auf, wobei fModal auf TRUE festgelegt ist.
Wenn eine Anwendung oder ein Plug-In, das im geschützten Modus ausgeführt wird, z. B. ein Browserhilfsobjekt (BHO) für internet Explorer, wenn internet Explorer im geschützten Modus ausgeführt wird, RequestPermissions aufruft und der Benutzer die Option Diesen Standortsensor nicht aktivieren im Dialogfeld auswählt, zeigt Windows das Dialogfeld erneut an, wenn RequestPermissions vom gleichen Benutzer erneut aufgerufen wird. Anwendungen, die im geschützten Modus ausgeführt werden, können den Aufruf von RequestPermissions beim Start vermeiden, sodass der Benutzer nicht bei jedem Start der Anwendung einem möglicherweise unerwünschten Dialogfeld ausgesetzt wird.
Beispiele
Der folgende Beispielcode fordert Berechtigungen für alle Sensoren an, die vom Sensor-Manager abgerufen werden, nach Typ mithilfe eines asynchronen Methodenaufrufs. Die Plattform fordert den Benutzer nur auf, Sensoren zu aktivieren, die noch nicht aktiviert sind. Um zu ermitteln, ob der Benutzer in diesem Fall Sensoren aktiviert hat, müssen Sie das ISensorEvents::OnStateChanged-Ereignis behandeln. Weitere Beispiele zum Anfordern von Berechtigungen finden Sie unter Anfordern von Benutzerberechtigungen.
// 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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | sensorsapi.h |
Bibliothek | Sensorsapi.lib |
DLL | Sensorsapi.dll |