看来,Windows 10 4 月更新已更改了对摄像头和麦克风等设备的访问权限,默认情况下将所有设备限制为无。
https://privacy.microsoft.com/en-us/windows-10-camera-and-privacy
我正在使用 Realsense 435 摄像头并希望在用户需要调整隐私设置时通知用户 - 例如“转到隐私设置。选择标签‘摄像头’并打开‘允许应用程序访问您的摄像头’”。
是否有 API 来检测相机隐私设置的当前状态?
看来,Windows 10 4 月更新已更改了对摄像头和麦克风等设备的访问权限,默认情况下将所有设备限制为无。
https://privacy.microsoft.com/en-us/windows-10-camera-and-privacy
我正在使用 Realsense 435 摄像头并希望在用户需要调整隐私设置时通知用户 - 例如“转到隐私设置。选择标签‘摄像头’并打开‘允许应用程序访问您的摄像头’”。
是否有 API 来检测相机隐私设置的当前状态?
是否有 API 来检测相机隐私设置的当前状态?
没有内置 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
betweenAllow
和Deny
at
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged
对于相机,
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged
对于麦克风。
NonPackaged
密钥用于桌面应用程序。您可以在键处切换(或查询)所有 UWP 访问webcam
,并在其子键处分别切换每个 UWP 应用。