Android Kivy JsonStore data.json不会在升级中持续存在

问题描述 投票:0回答:1

我正在使用带有Kivy应用程序的JsonStore

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

在我的PC上,即使重新构建程序也将保留存储。

在我的Android手机上,重新加载相同的apk文件将保留数据,但是对程序进行的任何更改(和重建)似乎都将擦除存储的数据。

我做错什么了,如何通过升级保留数据?

android json kivy store
1个回答
1
投票

那是因为您将文件写入应用程序所在的文件夹。您应该将它们写入/ 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')

并保存您的文件,不再需要在重新安装应用程序时将其删除。

P.S。不要忘记将pyjnius添加到buildozer规范文件中的要求!

© www.soinside.com 2019 - 2024. All rights reserved.