【问题标题】:Qt API to get application user data save location on iOS & AndroidQt API 在 iOS 和 Android 上获取应用程序用户数据的保存位置
【发布时间】:2017-07-08 19:23:02
【问题描述】:

我正在使用 commercial Qt 5.6 和在 androidiOS 上运行的应用程序。我想保存用户数据,即我的应用程序生成的 .png.jpeg 文件。而且,我希望将文件对应用程序保密,以便其他应用程序无法访问它们。

据我所知,我应该在iOS 上使用的位置是
<Application_Home>/Documents

而且,我应该为Android 使用的位置是
/mnt/sdcard/Android/data/<app_package_name>

Qt 中是否有 API 可以返回 iOS 和 android 上的这些文件位置,而无需处理任何 java 或 swift 代码?

【问题讨论】:

  • 寻找这个问题的更好答案。尝试过QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)QStandardPaths::standardLocations( QStandardPaths::AppDataLocation ).value(0),但它们都不能在 iOS 上运行。基本上我得到一个空白字符串。我是否需要在我的Info.plist 中为iOS 添加任何权限?

标签: android ios qt save


【解决方案1】:

是的,看看QStandardPaths 类。

【讨论】:

  • 根据this ios official link,应用程序Data Container 内的Documents 文件夹是我应该存储用户保存文件的位置。如何使用 QStandardPaths 访问特定的 Documents 文件夹?
  • 我试过QStandardPaths::writableLocationQStandardPaths::AppDataLocation),它返回/var/mobile/Containers/Data/Application/xxxx/Library/Application Support。从iOS official link 看来,我应该有一个Documents 文件夹来存储用户文件?我怎样才能使用QStandardPaths 获得它?
  • 视情况而定。 Apple 在谈到 /Library/Application Support 时说:“使用这个目录来存储所有应用程序数据文件,除了那些与用户文档相关的文件。例如,你可以使用这个目录来存储应用程序创建的数据文件、配置文件、模板或其他固定或可修改的资源......所以这可能是你想要的。否则,我猜你想要 GenericDataLocation 而不是 AppDataLocation
  • 说什么?如果你读到它说应用程序目录的数据包中的/Documents 是保存此类文件的位置。我可以通过在 Qt 返回的路径中添加“/Documents”来获取该链接,并且它在我测试时可以正常工作。应该没问题吧?
  • 当您回复时,我仍在编辑我的评论。希望这是您所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 2013-07-16
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多