共用方式為


ISensorManager::RequestPermissions 方法 (sensorsapi.h)

這很重要

請改用 UWP 感應器 API

COM 型感測器 API 已被取代,不應該用於新的應用程式。 沒有計劃提供其他功能或增強功能,並且支援將受到限制。

開啟系統對話方塊,以要求使用者存取感應器資料的權限。

語法

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

價值觀 Meaning
如果 hParentNull,對話方塊是強制回應,因此在使用者回應之前,在 Windows 中具有獨佔焦點。 呼叫是同步的。 回覆碼指出使用者選擇。 請參閱傳回值。

如果 hParent 為非 Null,則呼叫是非同步的,而且呼叫執行線不會等候對話方塊關閉。 回覆碼指出呼叫是否成功。 請參閱傳回值。

對話方塊是無模式的。 呼叫是非同步的,呼叫執行緒不會等候對話方塊關閉。 回覆碼指出呼叫是否成功。 請參閱傳回值。

hParent 參數會被忽略。

返回值

下表說明同步結果的回覆碼。

回傳碼 Description
S_OK
使用者啟用了感測器。
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
使用者選擇停用感應器。
HRESULT_FROM_WIN32(ERROR_CANCELLED)
使用者取消對話方塊或拒絕提高顯示對話方塊的權限。
 

下表說明非同步結果的傳回碼。

回傳碼 Description
S_OK
會顯示感測器集合中的所有感測器,供使用者啟用。 方法成功了。
S_FALSE
會顯示感測器集合中的某些感測器,供使用者啟用。 一些傳感器可能已從集合中刪除;例如,因為使用者先前已選擇停用它們。 方法成功了。
E_INVALIDARG
引數無效。
E_POINTER
指標為空值。
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
感測器集合中的所有感測器先前都已由使用者停用。 未顯示對話方塊。

備註

從 Windows 應用程式的使用者介面 (UI) 執行緒進行同步呼叫可能會封鎖 UI 執行緒,並降低應用程式的回應速度。 若要防止這種情況,請勿從 UI 執行程呼叫這個方法,並將 fModal 設定為 TRUE

附註  

如果以受保護模式執行的應用程式或外掛程式,例如 Internet Explorer 在受保護模式下執行時 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);
}


需求

Requirement 價值觀
最低支援的用戶端 Windows 7 [僅限桌面應用程式]
支援的最低伺服器 不支援
目標平臺 窗戶
Header 傳感器API.h
Library Sensorsapi.lib
DLL Sensorsapi.dll

另請參閱

ISensorManager

管理用戶權力

要求用戶權限