Для некоторых я использовал плагин sqlite-net-pcl, но в магазине игр теперь требуется приложение для Android версии 7 как минимум.
Когда я нацеливаюсь на это (Target Android Versions - 7.1), приложение не может открыть / создать базу данных, оно работает только для более низкой версии Android, такой как 5. Я знаю, что произошли изменения безопасности, которыевозможно, это вызвало, но я не знаю, как решить эту проблему.
Я получаю путь к данным для Android, например, Path.Combine(global::Android.OS.Environment.ExternalStorageDirectory.Path, filename);
Затем при запуске мое приложение пытается открыть соединение с базой данных, какпоэтому
string dbPath = DependencyService.Get<IFileHelper>().GetLocalFilePath("myDbName.db3");
var conn = new SQLiteAsyncConnection(dbPath);
Я хочу использовать SQLiteAsyncConnection
, поскольку он обрабатывает блокировки таблицы.
Исключение составляет:
Необработанное исключение:
SQLite.SQLiteException: Could not open database file: /storage/emulated/0/myDbName.db3 (CannotOpen)
Я также удостоверился, что отмечен галочкой для чтения и записи для разрешения внешнего хранилища.Используемый мной плагин - https://github.com/praeclarum/sqlite-net, что рекомендуют формы xamarin в своей документации.