0

在确认访问画廊中保存的照片的权限后,我第一次使用该应用程序时,pickphoto async 似乎什么也没做。 在此处输入图像描述

在我看来,问题在于它不等待用户授权。

为了正常工作,我必须多次单击照片的上传按钮。

我正在使用最新版本的库与 android 合作。

await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsPickPhotoSupported)
{
    await DisplayAlert("Oops", "You Cannot pick an image", AppResources.Label_OK);
    return;
}
var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
{
    PhotoSize = PhotoSize.MaxWidthHeight,
    MaxWidthHeight = 800,
    SaveMetaData = false
});
4

2 回答 2

0

我感谢回答我的人。我发现了错误:

错误代码:

 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
    PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

正确代码:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
{
    Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
于 2020-11-18T08:53:47.053 回答
0

您可以在加载页面之前请求运行时权限。之后,您无需多次单击照片的上传按钮。

    protected override void OnAppearing()
{
    base.OnAppearing();
    RunTimePermission();//ask for the runtime permission
}
于 2020-11-18T06:49:44.963 回答