android inotify\u添加\u监视失败:权限被拒绝?
我正在使用QtCreator和Qt for android。android inotify\u添加\u监视失败:权限被拒绝?,android,c++,qt,permissions,Android,C++,Qt,Permissions,我正在使用QtCreator和Qt for android。 我试图在android上使用QFileSystemModel制作一个文件对话框应用程序。 我正在调试我的手机(HTC A9) 除了我的软件包(QDir::currentPath()),我在手机上看不到任何其他内容 但是,如果我设置为QDir::rootPath(),则文件对话框在开始时只显示/而不显示任何内容(在我尝试访问它之后没有显示任何内容) 控制台显示: W libFileDialog.so:(null):0((null)):i
我试图在android上使用QFileSystemModel制作一个文件对话框应用程序。
我正在调试我的手机(HTC A9) 除了我的软件包(QDir::currentPath()),我在手机上看不到任何其他内容 但是,如果我设置为QDir::rootPath(),则文件对话框在开始时只显示/而不显示任何内容(在我尝试访问它之后没有显示任何内容) 控制台显示: W libFileDialog.so:(null):0((null)):inotify\u add\u watch(“/data/user”)失败:“权限被拒绝”
W libFileDialog.so:(null):0((null)):inotify\u add\u watch(“/data”)失败:“权限被拒绝”
W libFileDialog.so:(null):0((null)):inotify_add_watch(“/”)失败:“权限被拒绝”
W libFileDialog.so:(null):0((null)):inotify\u add\u watch(“/data”)失败:“权限被拒绝”
W libFileDialog.so:(null):0((null)):inotify\u add\u watch(“/data/user”)失败:“权限被拒绝”
W libFileDialog.so:(null):0((null)):inotify_add_watch(“/data/user/0”)失败:“权限被拒绝” 我添加了权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我只是在运行时需要请求权限后才读到
我调用了静态java方法来请求权限,它被授予了权限,但我仍然看不到文件。
(唯一的区别是我可以在虚拟设备中看到/sdcard。)我有使用inotify和FileObserver的经验,但没有使用Qt的经验。但是有些事情是全局性的,正如Sam所说,您没有root权限。这是一种操作系统保护,如果您有,它有时可能会起作用,在windows emulator上可能就是这样(如果我理解正确的话)。您不应该依赖于根访问,您的应用程序仅限于其自身的内部内存和外部内存(如图所示)
无论如何,要回答您的问题,您不需要学习java,FileObserver只是inotify api的包装器,inotify api是一种操作系统(linux)api。这看起来像是基本的文件系统权限。您的进程的PID对相关目录没有读取权限。
_fileModel = new QFileSystemModel;
_fileModel->setReadOnly(false);
_fileModel->setRootPath(QDir::rootPath());
_fileModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files);
ui->listView->setModel(_fileModel);