Freigeben über


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.

Wert Bedeutung
TRUE
Wenn hParentNULL ist, ist das Dialogfeld modal und hat daher in Windows den exklusiven Fokus, bis der Benutzer antwortet. Der Aufruf ist synchron. Der Rückgabecode gibt die Auswahl des Benutzers an. Siehe Rückgabewert.

Wenn hParent nicht NULL ist, ist der Aufruf asynchron, und der aufrufende Thread wartet nicht, bis das Dialogfeld geschlossen wird. Der Rückgabecode gibt an, ob der Aufruf erfolgreich war. Siehe Rückgabewert.

FALSE
Das Dialogfeld ist moduslos. Der Aufruf ist asynchron, und der aufrufende Thread wartet nicht, bis das Dialogfeld geschlossen wird. Der Rückgabecode gibt an, ob der Aufruf erfolgreich war. Siehe Rückgabewert.

Der hParent-Parameter wird ignoriert.

Rückgabewert

In der folgenden Tabelle werden Rückgabecodes für synchrone Ergebnisse beschrieben.

Rückgabecode BESCHREIBUNG
S_OK
Der Benutzer hat die Sensoren aktiviert.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Der Benutzer hat sich dafür entschieden, die Sensoren zu deaktivieren.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
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
S_OK
Alle Sensoren in der Sensorsammlung wurden für den Benutzer angezeigt, um sie zu aktivieren. Die Methode wurde erfolgreich ausgeführt.
S_FALSE
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.
E_INVALIDARG
Ein Argument ist ungültig.
E_POINTER
Ein Zeiger ist NULL.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
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.

Hinweis  

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

Weitere Informationen

ISensorManager

Verwalten von Benutzerberechtigungen

Anfordern von Benutzerberechtigungen