gpt4 book ai didi

android inotify_add_watch 失败 : permission denied?

转载 作者:行者123 更新时间:2023-11-30 05:09:55 26 4
gpt4 key购买 nike

我正在使用 QtCreator 和 Qt for android。
我试图在 android 上使用 QFileSystemModel 制作一个文件对话框应用程序。
我正在我的手机 (HTC A9) 上调试。

除了我的包裹(QDir::currentPath()),我在手机上看不到任何其他内容但是如果我设置为 QDir::rootPath(),文件对话框只在开头显示/(在我尝试访问它之后什么也没有显示)

控制台显示:

W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/data/user") failed: "Permission denied"
W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/data") failed: "Permission denied"
W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/") failed: "Permission denied"
W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/data") failed: "Permission denied"
W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/data/user") failed: "Permission denied"
W libFileDialog.so: (null):0 ((null)): inotify_add_watch("/data/user/0") failed: "Permission denied"

我添加了权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

但它仍然说 inotify_add_watch failed 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。)

最佳答案

我有使用 inotify 和 FileObserver 的经验,但没有使用 Qt 的经验。但是有些事情是全局的,正如 Sam 所说,您没有 root 权限。这是一种操作系统保护,如果您有 root access,它有时可能会起作用。 ,这可能是您的 Windows 模拟器的情况(如果我理解正确的话)。您不应该依赖于 root 访问权限,并且您的应用程序仅限于其自己的内部存储器和外部存储器,可以按照说明找到 here .

无论如何回答你的问题,你不需要学习 java,FileObserver 只是 inotify api 的包装器,它是一个操作系统 (linux) api。

关于android inotify_add_watch 失败 : permission denied?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45905512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com