Столкнулся со следующей проблемой. Есть файл базы данных SQLite, необходимо его скопировать на SD карту смартфона Android. Написал класс для копирования файла с места его хранения приложением в папку на SD карте. В манифесте Android разрешил доступ по чтению и записи: WRITE_EXTERNAL_STORAGE и READ_EXTERNAL_STORAGE. Но при попытке копирования возникает ошибка: отказано в доступе. Подскажите, что ещё нужно настроить, чтобы получить доступ к SD карте. В выложенном коде попытка скопировать в ExternalStorage и затем на SD карту. В обоих случаях идет отказ в доступе.
using System.IO;
using BreadDiary.Droid;
using Xamarin.Forms;
[assembly: Dependency(typeof(DBCopyService))]
namespace BreadDiary.Droid
{
public class DBCopyService : IDBCopy
{
public DBCopyService()
{
}
public void DBCopy()
{
// Копируем файл базы данных в доступное место на SD-карту
var safePath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData), "BreadDiary.db3");
var path = Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath, "BreadDiary.db3");
if (File.Exists(safePath))
{
System.Diagnostics.Debug.WriteLine(safePath);
System.Diagnostics.Debug.WriteLine(path);
System.Diagnostics.Debug.WriteLine(Android.OS.Environment.ExternalStorageState);
if (Android.OS.Environment.ExternalStorageState == "mounted")
{
// Запись в ExternalStorage
File.Copy(safePath, path, true);
// Запись на SD карту
File.Copy(safePath, "/storage/sdcard0/Download/BreadDiary.db3", true);
}
}
}
}
}
В общем все было просто. Необходимо было подключить плагин Plugin.Permissions и при первом обращении запросить права доступа во время исполнения приложения.
Второй нюанс заключается в том, что база данных SQLite на мобильном устройстве Android хранится не в одном файле, а в трех, при этом в файле *.db3 хранится только заголовок, а данные хранятся в файлах *.db3_shm и *db3_wal. Т. е. необходимо скопировать три файла.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне необходимо приложение WinForm, которое будет клиентом для ViberЯ создал WebHook, который принимает POST запросы от сервера Viber
Есть у меня в игре скины(другая картинка в персонажа) и нужно ,чтобы после выхода игрока из игры его выбор сохранялся(когда он вернется в игру...
У меня есть список под названием matrixКаждый элемент в matrix содержит еще один список под названием Items