/data/data/AppName没有映射到QStandardPaths,不过我觉得还是用这个比较好:
QStandardPaths::AppDataLocation 17 返回可以存储持久应用程序数据的目录位置。这是一个特定于应用程序的目录。要获取存储要与其他应用程序共享的数据的路径,请使用 QStandardPaths::GenericDataLocation。返回的路径永远不会为空。在 Windows 操作系统上,这将返回漫游路径。这个枚举值是在 Qt 5.4 中添加的。
或早期版本中的这个:
QStandardPaths::DataLocation 9 返回与 AppLocalDataLocation 相同的值。此枚举值已弃用。最好使用 AppDataLocation,因为在 Windows 上,建议使用漫游路径。
这些将在 Android 上设置为 DataLocation "<APPROOT>/files", "<USER>/<APPNAME>/files"。
但请注意,从 5.4 开始,后者已被弃用,如文档所述。您可以将其设置为follows:
QString QStandardPaths::writableLocation(StandardLocation 类型)
返回类型文件应该写入的目录,如果位置无法确定,则返回空字符串。
注意:返回的存储位置可以是不存在的目录;即,它可能需要由系统或用户创建。
所以,你会这样写:
QString dataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
// Do not need to check against empty string for this value as per documentatio
CameraCapture.captureToLocation(dataPath);
注意:请不要将QStandardPaths::ApplicationsLocation 用于此目的,因为那是非专用位置。此外,它甚至在 Android 上也不支持:
ApplicationsLocation 不受支持(目录不可读)
如果您想在应用程序之间共享图像,您需要对上面的代码稍作调整来使用它。虽然我认为你想要上面的那个,但有点不清楚你想要哪一个,所以我提到了两个:
StandardPaths::GenericDataLocation 11 返回可以存储跨应用程序共享的持久数据的目录位置。这是一个通用值。返回的路径永远不会为空。
在 Android 上设置为 GenericDataLocation "<USER>"。类文档中提到了确切的映射,您只需向下滚动到表格。我无法提供直接 URL,因为该部分没有永久链接。你也可以自己检查一下,哪个最合适。