, поэтому я использую геолокацию, чтобы получить местоположение устройства, и он обрабатывает запрос разрешений времени выполнения для себя, что хорошо и отлично работает. Однако теперь я пытаюсь получить разрешение на чтение / запись во внешнее хранилище, и его блокировка запросом разрешения геолокации дает следующую ошибку
W/Activity(21598): Can request only one set of permissions at a time
, не имеет значения, использую ли я api разрешений xamarin Essentials вот так:
private static async Task<bool> CheckAndRequestStoragePermission()
{
PermissionStatus status = await Permissions.CheckStatusAsync<Permissions.StorageWrite>();
if (status != PermissionStatus.Granted)
{
Console.WriteLine("not granted");
status = await Permissions.RequestAsync<Permissions.StorageWrite>();
}
else
{
Console.WriteLine("granted");
}
return status == PermissionStatus.Granted;
}
или в основном действии android
const int RequestPermisionsID = 0;
readonly string[] RequestPermision =
{
Manifest.Permission.WriteExternalStorage
};
protected override void OnStart()
{
base.OnStart();
if ((int)Build.VERSION.SdkInt >= 23)
{
if (CheckSelfPermission(Manifest.Permission.WriteExternalStorage) != Permission.Granted)
{
RequestPermissions(LocationPermissions, RequestLocationId);
}
else
{
Console.WriteLine("permissions already granted.");
}
}
} }
else
{
Console.WriteLine("Location permissions already granted.");
}
}
}
Он всегда блокируется запросом разрешения геолокации, так как я могу запросить разрешения одновременно как с использованием геолокации, или есть способ запретить ему запрашивать разрешение, чтобы я мог обрабатывать его одновременно с внешним запросом разрешения на запись