В моем Android 10.0 (Q) приложении, использующем формы Xamarin, я правильно установил в своем манифесте
<?xml version="1.0" encoding="utf-8"?>
<manifest **** />
<application *** ></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
У меня есть разрешения, предоставленные с помощью кода
var permission = ActivityCompat.CheckSelfPermission(MainActivity.Instance, Manifest.Permission.WriteExternalStorage);
if (permission != Permission.Granted)
{
ActivityCompat.RequestPermissions(
MainActivity.Instance,
new[]
{
Manifest.Permission.WriteExternalStorage,
Manifest.Permission.ReadExternalStorage
}, 1);
}
Еще когда Я пытаюсь создать файл в папке с документами или изображениями. Я получаю сообщение об ошибке отказа в разрешении: Java .IO.FileNotFoundException: '/storage/emulated/0/Documents/file.txt: открыть не удалось: EACCES (разрешение отказано) ' Что мне не хватает?
var folder= Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDocuments);
folder.Mkdirs();
var filePath = Path.Combine(folder.AbsolutePath, filename);
// I get a permissions error here
using (var stream = new Java.IO.FileOutputStream(filePath))
{
await stream.WriteAsync(data).ConfigureAwait(false);
}