Share via


ISensorManager::RequestPermissions 方法 (sensorsapi.h)

開啟系統對話框以要求使用者存取感測器數據的許可權。

語法

HRESULT RequestPermissions(
  [in] HWND              hParent,
  [in] ISensorCollection *pSensors,
  [in] BOOL              fModal
);

參數

[in] hParent

對於 Windows 8,如果提供 hParent 值,則對話框將會強制回應父視窗。 如果 hParentNULL,則對話框將不會為強制回應。 對話框一律為同步。

針對 Windows 7,HWND 會處理可作為許可權對話框父代的視窗。 如果 fModalTRUE,則必須為 NULL

[in] pSensors

對於 Windows 8,不會使用此值。

針對 Windows 7,pSensorsISensorCollection 介面的指標,其中包含要求許可權的感測器清單。

[in] fModal

對於 Windows 8,不會使用此值。 請參閱 hParent 以控制形式。

針對 Windows 7,fModal 是指定對話框模式的 BOOL 。 如果 hParent 不是 Null,則必須為 FALSE

意義
TRUE
如果 hParentNULL,則對話框為強制回應,因此在 Windows 中具有獨佔焦點,直到使用者響應為止。 呼叫是同步的。 傳回碼表示用戶選擇。 請參閱傳回值。

如果 hParent 為非 Null,則呼叫為異步,且呼叫線程不會等待對話框關閉。 傳回碼會指出呼叫是否成功。 請參閱傳回值。

FALSE
對話框是無模式的。 呼叫是異步的,而且呼叫線程不會等待對話框關閉。 傳回碼會指出呼叫是否成功。 請參閱傳回值。

忽略 hParent 參數。

傳回值

下表描述同步結果的傳回碼。

傳回碼 描述
S_OK
用戶已啟用感測器。
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
用戶選擇停用感測器。
HRESULT_FROM_WIN32 (ERROR_CANCELLED)
使用者已取消對話框,或拒絕提高許可權以顯示對話框的許可權。
 

下表描述異步結果的傳回碼。

傳回碼 描述
S_OK
感測器集合中的所有感測器都會顯示,讓用戶能夠啟用。 此方法已成功。
S_FALSE
已向用戶顯示感測器集合中的部分感測器。 某些感測器可能已從集合中移除;例如,因為使用者先前已選擇將其保持停用。 此方法已成功。
E_INVALIDARG
引數無效。
E_POINTER
指標為 Null。
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
使用者先前已停用感測器集合中的所有感測器。 未顯示對話框。

備註

從使用者介面進行同步呼叫 (UI) Windows 應用程式的線程,可以封鎖 UI 線程,並讓應用程式沒有回應。 若要避免這種情況,請勿從 將 fModal 設定為 TRUE 的 UI 線程呼叫此方法。

注意  

如果以受保護模式執行的應用程式或外掛程式,例如當 Internet Explorer 在受保護模式中執行時,瀏覽器協助程式物件 (BHO) 、呼叫 RequestPermissions,而使用者會在對話框中選擇 [不要啟用這個位置感測器] 選項,如果相同使用者再次呼叫 RequestPermissions,Windows 就會再次顯示對話框。 在受保護模式中執行的應用程式可以選擇避免在啟動時呼叫 RequestPermissions ,如此一來,每次應用程式啟動時,使用者都不會受限於可能的垃圾對話方塊。

 

範例

下列範例程式代碼會使用異步方法呼叫,依類型要求從感測器管理員擷取的所有感測器許可權。 平臺只會提示使用者啟用尚未啟用的感測器。 若要判斷使用者在此案例中是否啟用任何感測器,您必須處理 ISensorEvents::OnStateChanged 事件。 如需示範如何要求許可權的其他範例,請參閱 要求用戶權力

// 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);
}


規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 都不支援
目標平台 Windows
標頭 sensorsapi.h
程式庫 Sensorsapi.lib
Dll Sensorsapi.dll

另請參閱

ISensorManager

管理用戶權力

要求用戶權力