我的uwp应用程序中的Windows手机相机存在一个非常奇怪的问题。 如果我在发布或调试模式下执行我的代码,一切都进展顺利,但如果我将appxupload文件提交并提交给商店,那么如果我执行代码,应用程序就会关闭。
public async void startcamera()
{
CameraCaptureUI dialog = new CameraCaptureUI();
Size aspectRatio = new Size(16, 9);
dialog.PhotoSettings.CroppedAspectRatio = aspectRatio;
dialog.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
dialog.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.SmallVga;
StorageFile file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (file != null)
{
//do stuff
}
}
问题仅出现在Windows手机上(我试过不同的设备),如果我在带有网络摄像头的x86设备上安装该应用程序,它可以正常工作。
我读到了一些关于不支持的解决方案的内容,但正如我所说,在发布或调试模式下,它甚至可以在Windows Phone上运行而没有任何问题。
有什么想法吗?
答案 0 :(得分:0)
让您的应用程序通过认证的快捷方法是将代码包装在try-catch
中,这样可以防止您的应用崩溃。
在解决方案方面,您可以修改代码,如:
internal async void PickFromCamera()
{
RestartZone:
try
{
CameraCaptureUI captureUI = new CameraCaptureUI();
captureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
captureUI.PhotoSettings.CroppedSizeInPixels = new Size(300, 150);
StorageFile photo = await captureUI.CaptureFileAsync(CameraCaptureUIMode.Photo);
await HandleFileOperationsAndStorage(photo);
}
catch (Exception ex)
{
var promptResponse = await MessageDialogHelper.ShowTwoActionsMessageBox($"Somehting went wrong while decoding the image from the camera. Please make sure no other operation is being carried out. \nMore Information: {ex.Message}", "Operation Failed", "Try Again", "Cancel");
if (promptResponse)
goto RestartZone;
}
}
它应该工作得很好。
消息对话框助手是我所拥有的处理所有消息框弹出窗口的类,您可以在那里进行自己的错误处理。