Kivy - 在任何Android设备上获取DCIM文件夹的路径

时间:2017-02-26 09:02:27

标签: android python python-3.x kivy python-3.5

我想知道如何使用Kivy在Android上获取DCIM文件夹的路径。

PyJinus不是一个选项,因为它目前不适用于Python 3.5

到目前为止我尝试的是:

DATA_FOLDER = os.getenv('EXTERNAL_STORAGE') if platform is 'android' else os.path.expanduser("~")

但这只会让我获得用户区。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

如果您打算将sdcard用作应用程序的存储空间(使用user_data_dir变量创建文件夹),请使用user_data_dir然后向上移动:

from kivy.app import user_data_dir
from os.path import dirname, join
join(dirname(user_data_dir), 'DCIM')

或直接使用code

DCIM = join('/sdcard', 'DCIM')

我认为/sdcard只是真实文件夹的符号链接(无论它在哪里),因此使用此路径只会获取访问时的值,例如:到/storage/sdcard0(符号链接)或者直接到真实路径。

除了这些解决方案之外,android在您所注意到的环境中具有路径:

  • EXTERNAL_STORAGE(/storage/emulated/legacy)再次符号链接到sdcard
  • SECONDARY_STORAGE(/storage/extSdCard),如果您在那里存储照片,则为外部卡
  • EMULATED_STORAGE_TARGET(/storage/emulated)基本上是sdcard的父文件夹,其中真正的SD卡(对我而言)在/storage/extSdCard/emulated/0