我正在使用QtCreator和Qt的机器人。
我正试图使用QFileSystemModel在Android上创建文件对话框应用程序。
而我正在调试我的手机(HTC A9)。android inotify_add_watch失败:权限被拒绝?
我看不到我的手机上的任何其他内容,除了我的包(QDir :: currentPath()) ,但如果我设置为QDir :: rootPath(),文件对话框只显示/之后我尝试访问它)
控制台显示:
W¯¯libFileDialog.so:(空):0((空)):inotify_add_watch( “/数据/用户”)失败:“权限被拒绝“
W libFileDialog.so:(null):0((null)):inotify_add_watch(”/ data“)失败:”权限被拒绝“
W libFileDia ():0((null)):inotify_add_watch(“/”)失败:“权限被拒绝”
W libFileDialog.so:(null):0 “):失败:”权限被拒绝“
W libFileDialog.so:(null):0((null)):inotify_add_watch(”/ data/user“)失败: ):0((空)):inotify_add_watch( “/数据/用户/ 0”)失败: “权限被拒绝”
我添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但它仍然说inotify_add_watc h失败blahblah ...
它在Windows上完全正常工作。 如果我使用虚拟设备进行调试,它有时仍然会拒绝,但是当我尝试将模型的根路径设置为某个称为(日期,配置等)的目录时,它仅拒绝权限。
我应该如何解决该问题?
或者是大约只有C++编码的Android应用程序的问题,所以它告诉我去学JAVA?(我真的想坚持到C++:C)
代码:
_fileModel = new QFileSystemModel;
_fileModel->setReadOnly(false);
_fileModel->setRootPath(QDir::rootPath());
_fileModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files);
ui->listView->setModel(_fileModel);
我刚才读到,我需要在运行时请求权限。
我调用静态Java方法来请求权限,它被授予,但我仍然无法看到文件。 (唯一不同的是,我可以在我的虚拟设备中看到/ sdcard。)
这看起来像基本的文件系统权限。您的进程的PID对相关目录没有读取权限。 –