사용자 권한 관리
센서 API는 센서 또는 센서 컬렉션을 사용할 수 있는 권한을 사용자에게 요청하는 데 사용할 수 있는 방법을 제공합니다.
센서는 중요한 정보를 표시할 수 있으므로 Windows에서는 프로그램에서 데이터에 액세스하기 전에 사용자가 센서를 사용하도록 설정해야 합니다.
현재 SensorState 가 SENSOR_STATE_ACCESS_DENIED 센서를 사용하려는 경우 권한을 요청할 수 있습니다.
권한을 요청하려면 ISensorManager::RequestPermissions 메서드를 호출합니다 . 이 메서드를 호출하면 Windows에서 센서 사용 대화 상자를 열어 사용자가 요청한 센서를 사용하도록 설정하라는 메시지를 표시합니다. 이 대화 상자는 사용자가 요청한 센서의 이름을 사용자에게 제공합니다. 사용자는 다음 옵션 중 하나를 선택할 수 있습니다.
- 이러한 센서를 사용하도록 설정합니다.
- 이러한 센서를 사용하도록 설정하지 마세요.
- 더 많은 옵션을 보려면 제어판 엽니다.
사용자가 이러한 센서를 사용하도록 설정하지 않음을 선택하면 프로그램이 RequestPermissions를 호출하더라도 해당 특정 센서에 대해 센서 사용 대화 상자가 다시 표시되지 않습니다. 사용자가 다른 옵션을 선택하면 Windows에서 요청 시 대화 상자를 표시할 수 있습니다. RequestPermissions에 대한 호출에 사용자가 이전에 사용하지 않도록 설정한 일부 센서가 포함된 경우 센서 API는 사용자가 보는 센서 목록에서 이러한 센서를 제거합니다.
모달 또는 모덜리스 동작
RequestPermissions 메서드는 센서 사용 대화 상자가 모달 또는 모덜리스 창으로 표시되는지 여부를 결정하는 부울 인수를 사용합니다. 또한 이 설정은 대화 상자 반환 코드의 동작이 동기 또는 비동기인지에 영향을 줍니다.
모달이면 사용자가 옵션을 선택할 때까지 대화 상자가 애플리케이션 창에서 배타적인 포커스를 가지며 RequestPermissions에 대한 호출의 HRESULT 반환 코드는 사용자 선택을 나타냅니다. 모덜리스인 경우 대화 상자에 배타적 포커스가 없으며 RequestPermissions 에 대한 호출이 즉시 반환됩니다. 이 경우 반환 코드는 메서드가 성공했는지 여부를 나타내지만 사용자의 선택을 확인하는 데 사용할 수 없습니다. 그런 다음 OnStateChanged 이벤트를 처리하고 각 센서에서 SENSOR_STATE_READY 확인하여 사용하도록 설정된 센서를 확인할 수 있습니다.
반환 코드에 대한 자세한 내용은 RequestPermissions 참조 페이지를 참조하세요.
모범 사례: RequestPermissions에 대한 여러 모덜리스 호출 방지
RequestPermissions에 대한 반복된 모덜리스 호출은 이러한 센서 사용 대화 상자의 여러 인스턴스를 표시하고 잠재적으로 대화 상자로 화면을 가득 채우면 사용자 환경이 저하될 수 있습니다. RequestPermissions에 대한 첫 번째 호출 후 다른 위치 센서가 설치되어 RequestPermissions에 대한 다른 호출이 필요한 경우 RequestPermissions를 모듈식으로 호출하거나 모든 위치 센서가 설치될 때까지 기다렸다가 모덜리스 호출을 수행해야 합니다.
관련 항목