Dan*_*ely 4 c# permissions uwp
我看过这个问题,并尝试过基于它的实现:
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....");
}
}
Run Code Online (Sandbox Code Playgroud)
但是MediaCapture.InitializeAsync()需要Webcam和Microphone权限。我正在做的任何事情都不需要捕获音频,而我正在使用的成像库 (ZXing) 只需要Webcam; 所以这个解决方案不太理想,因为它需要清单来请求用户单击“是”以获得我的应用程序不需要且永远不会使用的权限。
我正在做的任何事情都不需要捕获音频,我正在使用的图像库(ZXing)只需要网络摄像头;
在 UWP 应用中,如果您需要使用Camera,通常有两种方法。一种是使用MediaCapture. 正如你提到的,MediaCapture.InitializeAsync()需要webcam和microphone权限。
另一种方法是使用windows 内置相机 UI。如果您正在使用,则不应在应用清单文件中指定webcam或microphone功能CameraCaptureUI。这是因为 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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |