Я получил уведомление о проблеме с успешным сохранением файла (исключение не выдается), но файл невозможно просмотреть или получить к нему доступ (пробовал как с ПК через USB, так и с устройства через встроенный файловый менеджер). После перезагрузки файл устройства оказывается на своем месте, и к нему можно получить доступ.
Я проверил его на втором телефоне, и он тоже работал нормально.
На устройстве он там не работает. не было ошибок или даже предупреждений в режиме отладки для этого сегмента сохранения файла.
Мой телефон: Xiaomi Mi Note 10 Lite, Android 12 - работает
Второй телефон: Redmi Note 12, Android 14 – работает
Целевое устройство: NLS-MT37, Android 8.1 – не работает
Мои настройки манифеста Android:
Код: Выделить всё
Код: Выделить всё
public async Task SaveData(){
Log.Information("Data save initiated by user.");
try{
using (MemoryStream memoryStream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(memoryStream, Encoding.Default)){
writer.WriteLine("header");
foreach (var line in lines)
{
writer.WriteLine($"write line info");
}
writer.Flush();
memoryStream.Seek(0, SeekOrigin.Begin);
#if ANDROID
string downloadsDir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath;
var filePath = Path.Combine(downloadsDir, fileName);
await File.WriteAllBytesAsync(filePath, memoryStream.ToArray(), cancellationTokenSource.Token);
await App.Current.MainPage.DisplayAlert("alert title", "alert success info", "ok");
#endif
}
}catch(Exception exc) {
//log exception and display error message
}
}
Для проверки я отозвал права доступа к хранилищу файлов на всех устройствах и получил исключение на всех из них.
Что я делаю неправильно? Это из-за какой-то ошибки в более старой версии Android или, возможно, версии, используемой на целевом устройстве? У меня нет старого телефона Android, с которым можно было бы сравнивать.
Подробнее здесь: https://stackoverflow.com/questions/788 ... de-working