0

我正在为 Android 开发 KivyMD 文本文件资源管理器。以下是代码片段:

def __init__(self, **kwargs):
self.file_manager = MDFileManager(
            exit_manager=self.exit_manager,
            select_path=self.select_path,
            previous=False,
        )
request_permissions([Permission.WRITE_EXTERNAL_STORAGE,Permission.READ_EXTERNAL_STORAGE,Permission.INTERNET])
self.ROOT_PATH = primary_external_storage_path()

上面的初始化工作完美无缺,下面的代码语句也启动了文件管理器/资源管理器。

self.file_manager.show(self.ROOT_PATH)

但生成的内容只是文件夹名称或图像文件(.jpg、.jpeg、.png)。没有显示其他文件类型。

我在调用之前尝试了以下操作self.file_manager.show(self.ROOT_PATH),但响应没有变化。

self.file_manager.use_access = True
self.file_manager.previous=False
self.file_manager.preview=False

当我尝试self.file_manager.ext = ['txt']扩展过滤技术时,即使图像文件列表消失了,只列出/显示文件夹名称。

因此,我写这个请求寻求专家的回应。

提前致谢。

4

3 回答 3

1

如果上述情况不起作用,请尝试:

self.file_manager = MDFileManager(exit_manager=self.exit_manager,
                                     select_path=self.select_path,)
   self.file_manager.ext = [".py",".kv"]
于 2020-09-04T07:20:11.000 回答
0
  1. 从 master 分支更新库 - https://github.com/kivymd/KivyMD,而不是从 pip。

self.file_manager = MDFileManager(
    exit_manager=self.exit_manager,
    select_path=self.select_path,
    preview=True,
    # preview=True - deprecated
 )
  1. 如果您设置“预览”参数,则文件管理器中只会显示图像。如果您希望文件管理器显示所有文件类型,请不要使用“预览”参数

self.file_manager = MDFileManager(
    exit_manager=self.exit_manager,
    select_path=self.select_path,
    ext=[".py", "kv"],
)

在此处输入图像描述

于 2020-08-12T11:07:17.377 回答
0

我和你有同样的问题。

在 android.developers 上发现实际上“所有文件”需要权限 MANAGE_EXTERNAL_STORAGE。

只需将 buildozer.spec 文件 MANAGE_EXTERNAL_STORAGE 也放入:

(列表)权限

android.permissions = INTERNET,WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE,MANAGE_EXTERNAL_STORAGE 无需将其放入 py 代码中,因为您需要其他权限。他们可以在代码中避免每次启动应用程序时都请求许可。

但是,安装应用程序后,您必须对应用程序权限进行所有文件的所有管理允许权限

为我工作,希望它有帮助。

于 2021-07-17T19:02:32.040 回答