我需要在Android根文件系统中读取文件夹。所有Android文件管理器都可以执行此操作,而无需“生根”设备。但就我而言,结果很奇怪。
应用程序是使用Qt5 / C ++编写的。它不是新应用程序,但足够老。媒体访问权限由AndroidMainfest.xml中的READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE以及动态请求授予。应用程序打开了/ mnt文件夹,以允许用户在其上找到音乐文件。但是在某些设备上,外部SD卡未安装到/ mnt。因此,我希望更改应用程序以允许用户读取根目录/文件夹并允许在其上查找音乐。以下代码:
QTreeView* tv = new QTreeView(this);
QFileSystemModel* fsm = new QFileSystemModel(this);
tv->setModel( fsm );
1: tv->setRootIndex( fsm->setRootPath( "//mnt/" ) ); // Android & Linux Ok
2: //tv->setRootIndex( fsm->setRootPath( QDir::rootPath() ) ); // Linux Ok, Android not
在Android和台式机Linux上运行良好。但是,如果标签1后面的注释行和标签2后面的注释行--那么代码将仅在Linux中有效。它将在树视图中给出根目录“ /”内的所有文件和目录。但是在Android中,它将给出空结果。没有。这与Qt5无关-这是Android问题。 QDir :: rootPath()==“/"。
有人知道允许应用程序在Android中读取根目录吗?