我在 Xamarin.Forms 项目中遇到 Xamarin.Essentials 问题,其中 StorageRead 的权限对话框未按预期显示。该代码似乎执行了某些部分,但跳过了权限请求对话框。
代码示例:
await DisplayAlert("1", "1", "1");
var status = await Permissions.CheckStatusAsync<Permissions.StorageRead>();
if (status == PermissionStatus.Granted)
{
await DisplayAlert("2", "2", "2");
var result = await MediaPicker.PickPhotoAsync();
if (result != null)
{
await DisplayAlert("3", "3", "3");
// Additional code...
}
}
else
{
await DisplayAlert("4", "4", "4");
// Request permission and await the result
var permissionResult = await Permissions.RequestAsync<Permissions.StorageRead>();
// Check if the permission was granted after the request
if (permissionResult == PermissionStatus.Granted)
{
await DisplayAlert("5", "5", "5");
var result = await MediaPicker.PickPhotoAsync();
if (result != null)
{
await DisplayAlert("6", "6", "6");
// Additional code...
}
}
else
{
await DisplayAlert("7", "7", "7");
}
}
我有一个 Xamarin.Forms 项目,其中使用 Xamarin.Essentials 请求 StorageRead 权限,然后使用 MediaPicker 选取照片。但是,我面临一个问题,即权限对话框未按预期显示。该代码似乎执行了第 1、4 和 7 部分,但没有显示任何与权限相关的对话框。
如果您的项目面向 Android 13 及更高版本,存储权限现在已根据您是否要访问视频、音频或图像进行更改。
对于照片,您需要图像许可,即
READ_MEDIA_IMAGES
更多信息可以在这里找到
另外,请务必阅读此内容https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_IMAGES