Я использовал Службы зависимостей, чтобы получить путь загрузки из Xamarin. android .Создал интерфейс в Xamarin.Forms и внедрил его в Xamarin. Android Затем разрешил интерфейс и получил путь Вот так
var newPath = Path.Combine(DependencyService.Get<IFileSystem>().GetExternalStorage(),
"data1.txt");
using (var writer = File.CreateText(path))
{
writer.Write(csv);
}
Мне также нужно было вызывать этот метод для разрешений в onCreate()
основной активности, чтобы разрешить исключение, запрещающее доступ, например:
private void CheckAppPermissions()
{
if ((int)Build.VERSION.SdkInt < 23)
{
return;
}
else
{
if (PackageManager.CheckPermission(Manifest.Permission.ReadExternalStorage, PackageName) != Permission.Granted
&& PackageManager.CheckPermission(Manifest.Permission.WriteExternalStorage, PackageName) != Permission.Granted)
{
var permissions = new string[] {
Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
RequestPermissions(permissions, 1);
}
}
}
, вызывать его в onCreate()
для устранения ошибки разрешения