Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Verwenden Sie stattdessen die UWP-Sensor-API .
Die COM-basierte Sensor-API ist veraltet und sollte nicht in neuen Anwendungen verwendet werden. Es sind keine zusätzlichen Features oder Verbesserungen geplant, und der Support wird eingeschränkt.
Öffnet ein Systemdialogfeld, um Benutzerberechtigungen für den Zugriff auf Sensordaten anzufordern.
Syntax
HRESULT RequestPermissions(
[in] HWND hParent,
[in] ISensorCollection *pSensors,
[in] BOOL fModal
);
Die Parameter
[in] hParent
Wenn für Windows 8 hParent ein Wert bereitgestellt wird, ist das Dialogfeld für das übergeordnete Fenster modal. Wenn hParentNULL ist, ist das Dialogfeld nicht modal. Das Dialogfeld ist immer synchron.
Für Windows 7 wird HWND mit einem Fenster behandelt, das als übergeordnetes Element für das Dialogfeld "Berechtigungen" fungieren kann. Muss NULL sein, wenn "fModal" WAHR 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 die 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 , der den Dialogfeldmodus angibt. Muss FALSE sein, wenn hParent ungleich NULL ist.
Rückgabewert
In der folgenden Tabelle werden Rückgabecodes für synchrone Ergebnisse beschrieben.
| Rückgabecode | Description |
|---|---|
|
Der Benutzer hat die Sensoren aktiviert. |
|
Der Benutzer hat sich entschieden, die Sensoren zu deaktivieren. |
|
Der Benutzer hat das Dialogfeld abgebrochen oder die Berechtigungserweiterung verweigert, um das Dialogfeld anzuzeigen. |
In der folgenden Tabelle werden Rückgabecodes für asynchrone Ergebnisse beschrieben.
| Rückgabecode | Description |
|---|---|
|
Alle Sensoren in der Sensorsammlung wurden angezeigt, damit der Benutzer dies aktivieren kann. Die Methode war erfolgreich. |
|
Einige der Sensoren in der Sensorsammlung wurden angezeigt, damit der Benutzer dies aktivieren kann. Einige Sensoren wurden möglicherweise aus der Sammlung entfernt; Beispielsweise weil sich der Benutzer zuvor dafür entschieden hatte, sie deaktiviert zu lassen. Die Methode war erfolgreich. |
|
Ein Argument ist ungültig. |
|
Ein Zeiger ist NULL. |
|
Alle Sensoren in der Sensorsammlung wurden zuvor vom Benutzer deaktiviert. Das Dialogfeld wurde nicht angezeigt. |
Bemerkungen
Ein synchroner Aufruf aus dem Ui-Thread einer Windows-Anwendung kann den UI-Thread blockieren und die Anwendung weniger reaktionsfähig machen. 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, die im geschützten Modus ausgeführt wird, z. B. ein Browserhilfsobjekt (Browser Helper Object, BHO) für Internet Explorer, wenn Internet Explorer im geschützten Modus ausgeführt wird, aufruft RequestPermissions, und der Benutzer wählt die Option "Diesen Standortsensor nicht aktivieren " im Dialogfeld aus, zeigt Windows das Dialogfeld erneut an, wenn RequestPermissions erneut vomselben Benutzer aufgerufen wird. Anwendungen, die im geschützten Modus ausgeführt werden, können das Aufrufen von RequestPermissions beim Start vermeiden, sodass der Benutzer nicht bei jedem Start der Anwendung einem möglichen unerwünschten Dialogfeld unterliegt.
Examples
Der folgende Beispielcode fordert Berechtigungen für alle Sensoren an, die vom Sensor-Manager mithilfe eines asynchronen Methodenaufrufs abgerufen werden. Die Plattform fordert den Benutzer nur auf, Sensoren zu aktivieren, die noch nicht aktiviert sind. Um festzustellen, ob der Benutzer in diesem Fall Sensoren aktiviert hat, müssen Sie das Ereignis "ISensorEvents::OnStateChanged " behandeln. Weitere Beispiele, die veranschaulichen, wie Berechtigungen angefordert werden, 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 |
|---|---|
| Mindestens unterstützter Client | Windows 7 [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Nicht unterstützt |
| Zielplattform | Fenster |
| Header | sensorsapi.h |
| Library | Sensorsapi.lib |
| DLL | Sensorsapi.dll |