Android Данные Kivy JsonStore. json не сохраняется при обновлении - PullRequest
0 голосов
/ 26 января 2020

Я использую JsonStore с приложением Kivy

from kivy.storage.jsonstore import JsonStore
stored_data = JsonStore('data.json')

На моем P C хранилище сохраняется, даже если я перестраиваю программу.

На моем android телефон, перезагрузка того же самого файла apk сохраняет данные, но любое изменение в программе (и перестройка), по-видимому, стирает сохраненные данные.

Я что-то не так делаю, как я могу сохранить данные через обновления?

1 Ответ

1 голос
/ 27 января 2020

Это потому, что вы записываете свои файлы в папку, где находится ваше приложение. Вы должны записать их в / sdcard, а также дать права на запись:

from jnius import autoclass
from android.permissions import request_permissions, Permission
...
# request a permission from user
request_permissions([Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE])
...
# path to sdcard (external storage that user have access to)
Environment = autoclass('android.os.Environment')
sdpath = Environment.getExternalStorageDirectory().getAbsolutePath()

Итак, после этого вы можете сделать свою папку там, что-то вроде:

if not os.path.exists(sdpath + '/yourappname'):
    os.makedirs(sdpath + '/yourappname')

И сохранить ваши файлы там они не будут удалены при переустановке приложения.

PS не забудьте добавить pyjnius к требованиям в файле buildozer spe c!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...