gpt4 book ai didi

c# - UWP 用户友好的方式来检查用户是否仅授予相机权限

转载 作者:行者123 更新时间:2023-11-30 20:26:07 25 4
gpt4 key购买 nike

我看过 this问题,并尝试基于它的实现:

private async Task<bool> CameraPermissionCheck()
{
MediaCapture _mediaCapture = new MediaCapture();
try
{
await _mediaCapture.InitializeAsync();
return true;
}
catch (UnauthorizedAccessException ex)
{
return false;
}
}

private async void DoCameraStuff()
{
bool cameraAllowed = await CameraPermissionCheck();

if (cameraAllowed)
{
//DO Stuff....
}
else
{
ShowMessage("Can't Do Stuff because camera permission is denied. To grant them....");
}
}

但是 MediaCapture.InitializeAsync() 需要 WebcamMicrophone 权限。我所做的一切都不需要捕获音频,我使用的图像库 (ZXing) 只需要 Webcam;所以这个解决方案不太理想,因为它需要 list 来请求用户单击"is"以获得我的应用程序不需要且永远不会使用的权限。

最佳答案

Nothing I'm doing needs to capture audio, and the imaging library I'm using (ZXing) only needs Webcam;

在UWP应用中,如果需要使用Camera ,一般有两种方式。一种是使用 MediaCapture。正如您提到的,MediaCapture.InitializeAsync() 需要 webcammicrophone 权限。

另一种方法是使用 windows built-in camera UI .如果您使用的是 CameraCaptureUI,则不应在应用 list 文件中指定 webcammicrophone 功能。这是因为 Windows 内置摄像头应用程序是受信任的第一方应用程序,需要用户通过按下按钮来启动照片、音频和视频捕获。

您正在使用的库 Zxing.Net.Mobile 使用第一种方式,MediaCapture。如果您只想指定与链接示例相同的 WebCam 功能,则需要设置 MediaCaptureInitializationSettings仅限视频。例如:

_mediaCapture = new MediaCapture();
try
{
await _mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings
{
StreamingCaptureMode = StreamingCaptureMode.Video
});
_isInitialized = true;
}
catch (UnauthorizedAccessException ex)
{
Debug.WriteLine("The app was denied access to the camera");
}

关于c# - UWP 用户友好的方式来检查用户是否仅授予相机权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com