Kivy android SDCard 路径不工作

Kivy android path of SDCard does not work

我正在尝试将用户输入保存到一个文件中,以便以后在我的计算机上使用。我不能使用相对路径,因为我的 phone 上没有根目录,所以无法访问它。我正在尝试使用 android.storage 模块和 primary_external_storage_path,但它在我的 phone 上根本不起作用。这只是我的应用程序的一个片段。

from android.permissions import request_permissions, Permission
request_permissions([Permission.WRITE_EXTERNAL_STORAGE,
                     Permission.READ_EXTERNAL_STORAGE])

from android.storage import primary_external_storage_path
SD_CARD = primary_external_storage_path()

class MyApp(App):
    def build(self):
        with open('settings.txt', 'r') as file:
            f = open(SD_CARD + today.strftime("%Y_%m_%d") + ".txt", 'a+')

   ...

好像哪里出了问题?我在 phone 上使用 Android 7.1.1。据我所知,buildozer(我用来构建 APK)包含 android 包,所以应该包含所有内容。 buildozer 的 .spec 文件中有什么东西?

您可能必须在 buildozer.spec 文件的要求中包含 android。即使在那之后,如果您遇到错误,那么您可能正在使用旧版本的 kivy。因此,您必须通过将要求指定为 kivy==2.0.0 来使用最新版本。更改 kivy 版本后,您必须重建您的应用程序。或者还有另一种方法可以获得外部存储路径。您可以使用 os.getenv('EXTERNAL_STORAGE')。这将为您提供外部存储的路径