buildozer 制作的 APK 未在 android 移动设备上制作 CSV 文件

APK made by buildozer not making CSV file on android mobile

我在 KivyApp 的帮助下制作了一个 APK。 APK 已成功生成,我的 APK 也在我的手机上 运行s。问题是我没有为 CSV 文件提供任何特定路径,该文件存储了应用程序生成的输出。最初,我 运行 python 在 pydroid3 应用程序中编写代码,它会在存储我的代码的同一位置自动生成 CSV 文件。我的问题是,如果我想将数据存储在手机的内部存储器中,我应该输入什么路径?

import csv
csvfile = "Discrete_pos.csv"
with open(csvfile, "a") as fp:
    wr = csv.writer(fp, dialect='excel')
    wr.writerow(csvRow)
        

好吧,我想你的意思是 External Storage 的路径(可以通过任何应用程序访问,你在移动文件资源管理器中看到的那个)因为它已经存储在你的内部存储路径中。现在访问外部存储有两种方法。但首先你需要为此获得存储许可。要获得存储权限,请使用以下代码:

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
external_storage = primary_external_storage_path()

有时这在某些 android 设备上不起作用,因此如果您遇到该问题,您也可以使用 os.getenv:

external_storage = os.getenv('EXTERNAL_STORAGE')

此外,不要忘记在 buildozer.spec 文件的权限中写入 READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE