是否可以查询 windows 10 的相机隐私设置?

Is it possible to query the camera privacy settings for windows 10?

似乎 Windows 4 月 10 日更新更改了相机和麦克风等设备的访问权限,默认限制为 none。

https://privacy.microsoft.com/en-us/windows-10-camera-and-privacy

我正在使用 Realsense 435 摄像头,并希望在用户需要调整隐私设置时通知他 - 例如 "Go to Privacy Settings. Select the tab 'Camera' and turn on 'Allow apps to access your camera'"。

是否有 API 来检测相机隐私设置的当前状态?

Is there an API to detect the current state of the camera privacy settings?

没有内置 API 可让您检测相机隐私设置的状态。

但我们可以换个角度思考这个问题,如果相机设置关闭。当您初始化相机对象时,它会在您的代码中抛出异常。

例如:Camera Resolution Line86如果您发现异常,您可以使用await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-webcam"));

启动相机的隐私设置页面
public async Task InitializeCameraAsync()
{
        MediaCapture = new MediaCapture();
        MediaCapture.Failed += MediaCapture_Failed;

        try
        {
            await MediaCapture.InitializeAsync();
            _previewControl.Source = MediaCapture;
            await MediaCapture.StartPreviewAsync();
            IsPreviewing = true;
        }
        catch (UnauthorizedAccessException)
        {
            // This can happen if access to the camera has been revoked.
            MainPage.Current.NotifyUser("The app was denied access to the camera", NotifyType.ErrorMessage);
            await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-webcam"));
            await CleanupCameraAsync();
        }
}

我一直在寻找相同的东西,除了麦克风,在更改设置并进行注册表差异后,我发现更改该设置会更改 Value 之间的 AllowDeny

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged

对于相机,

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged

麦克风。

NonPackaged 键用于桌面应用程序。您可以通过 webcam 键切换(或查询)所有 UWP 访问权限,并在其子键中单独切换每个 UWP 应用程序。