다음을 통해 공유


ISensorManager::RequestPermissions 메서드(sensorsapi.h)

중요합니다

대신 UWP 센서 API 를 사용합니다.

COM 기반 센서 API는 더 이상 사용되지 않으며 새 애플리케이션에서 사용해서는 안 됩니다. 추가 기능 또는 향상된 기능은 계획되지 않으며 지원이 제한됩니다.

센서 데이터에 액세스할 수 있는 사용자 권한을 요청하는 시스템 대화 상자를 엽니다.

Syntax

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의 경우 pSensors 는 사용 권한이 요청되는 센서 목록을 포함하는 ISensorCollection 인터페이스에 대한 포인터입니다.

[in] fModal

Windows 8의 경우 이 값은 사용되지 않습니다. 형식을 제어하려면 hParent 를 참조하세요.

Windows 7의 경우 fModal 은 대화 상자 모드를 지정하는 BOOL 입니다. hParent가 null이 아닌 경우 FALSE여야 합니다.

가치 Meaning
hParentNULL인 경우 대화 상자는 모달이므로 사용자가 응답할 때까지 Windows에서 전용 포커스가 있습니다. 호출이 동기적입니다. 반환 코드는 사용자 선택을 나타냅니다. 반환 값을 참조하세요.

hParent가 null이 아닌 경우 호출은 비동기이며 호출 스레드는 대화 상자가 닫히기를 기다리지 않습니다. 반환 코드는 호출이 성공했는지 여부를 나타냅니다. 반환 값을 참조하세요.

FALSE
대화 상자가 모덜리스입니다. 호출은 비동기적이며 호출 스레드는 대화 상자가 닫히기를 기다리지 않습니다. 반환 코드는 호출이 성공했는지 여부를 나타냅니다. 반환 값을 참조하세요.

hParent 매개 변수는 무시됩니다.

반환 값

다음 표에서는 동기 결과에 대한 반환 코드에 대해 설명합니다.

반환 코드 Description
S_OK
사용자가 센서를 사용하도록 설정했습니다.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
사용자가 센서를 사용하지 않도록 선택했습니다.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
사용자가 대화 상자를 취소하거나 대화 상자를 표시할 수 있는 권한 상승을 거부했습니다.
 

다음 표에서는 비동기 결과에 대한 반환 코드를 설명합니다.

반환 코드 Description
S_OK
사용자가 사용할 수 있도록 센서 컬렉션의 모든 센서가 표시되었습니다. 메서드가 성공했습니다.
S_FALSE
사용자가 사용할 수 있도록 센서 컬렉션의 일부 센서가 표시되었습니다. 일부 센서는 컬렉션에서 제거되었을 수 있습니다. 예를 들어 사용자가 이전에 사용하지 않도록 유지하기로 선택했기 때문입니다. 메서드가 성공했습니다.
E_INVALIDARG
인수가 잘못되었습니다.
E_POINTER
포인터가 null입니다.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
센서 컬렉션의 모든 센서는 이전에 사용자가 사용하지 않도록 설정했습니다. 대화 상자가 표시되지 않았습니다.

비고

Windows 애플리케이션의 UI(사용자 인터페이스) 스레드에서 동기 호출을 하면 UI 스레드를 차단하고 애플리케이션의 응답성이 떨어집니다. 이를 방지하려면 fModalTRUE로 설정된 UI 스레드에서 이 메서드를 호출하지 마세요.

참고  

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


요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 윈도우즈
Header sensorsapi.h
Library Sensorsapi.lib
DLL Sensorsapi.dll

참고하십시오

ISensorManager

사용자 권한 관리

사용자 권한 요청