Данные пользователя
Начиная с ОС Аврора версии 4.0.1 каждое приложение запускается в изолированном окружении, которое ограничивает доступ к API и данным. Директории, которые доступны приложениям для чтения и записи, определяются как названием установочного пакета, так и разрешениями, перечисленными в .desktop-файле.
Пути к директориям рекомендуется указывать с помощью класса QStandardPaths или QML-типа StandardPaths. Такой подход позволяет избежать привязок к конкретному приложению или параметрам окружения.
Если приложение не использует libsailfishapp,
в функции main() нужно соответствующим образом сконфигурировать
экземпляр класса QGuiApplication,
чтобы пути были настроены корректно:
QScopedPointer<QGuiApplication> application(SailfishApp::application(argc, argv));
application->setOrganizationName(QStringLiteral("{доменное_имя}"));
application->setApplicationName(QStringLiteral("{название_приложения}"));
{доменное_имя} и {название_приложения} должны соответствовать тем,
которые указаны
в .desktop-файле.
По умолчанию каждое приложение имеет доступ на чтение и запись только к тем директориям, которые ему соответствуют, а также общей директории всех приложений одной организации:
| Описание | Константа QStandardPaths | Свойство StandardPaths | Путь |
|---|---|---|---|
| Настройки приложения для пользователя | AppConfigLocation |
~/.config/{доменное_имя}/{название_приложения} |
|
| Кэш приложения (данные, удаление которых не влияет на настройки приложения) для пользователя | CacheLocation |
cache |
~/.cache/{доменное_имя}/{название_приложения} |
| Данные приложения для пользователя | AppDataLocation |
data |
~/.local/share/{доменное_имя}/{название_приложения} |
| Данные приложения, общие для всех пользователей устройства (чтение/запись) | /srv/shared/{доменное_имя}/{название_приложения} |
||
| Общие данные всех приложений организации (чтение/запись) | /srv/shared/{доменное_имя}/common |
||
| Директория для хранения данных между всеми приложениями одного вендора с возможностью распаковки данных при установке пакета (только чтение) | /usr/share/common/{доменное_имя}/{название_приложения} |
Примечание:
Директория /srv/shared/{доменное_имя}/{название_приложения} формируется
при запуске приложения на устройстве
и доступна, пока активен хотя бы один экземпляр приложения.
Директория /srv/shared/{доменное_имя} формируется
при запуске любого приложения организации
и доступна, пока активен хотя бы один экземпляр любого приложения организации.
Для доступа к общим директориям пользователя необходимо указать разрешения в .desktop-файле:
| Описание | Константа QStandardPaths | Свойство StandardPaths | Путь | Разрешение |
|---|---|---|---|---|
| Документы пользователя | DocumentsLocation |
documents |
~/Documents | Documents или UserDirs |
| Загрузки пользователя | DownloadLocation |
downloads |
~/Downloads | Downloads или UserDirs |
| Музыка и другие аудиофайлы пользователя | MusicLocation |
music |
~/Music | Music или UserDirs |
| Фотографии и другие изображения пользователя | PicturesLocation |
pictures |
~/Pictures | Pictures или UserDirs |
| Общие данные приложений пользователя | GenericDataLocation |
genericData |
~/Public | PublicDir или UserDirs |
| Фильмы и другие видео пользователя | MoviesLocation |
videos |
~/Videos | Videos или UserDirs |
| Подключаемые накопители (SD-карты и т. п.) | RemovableMedia |
Примечание:
Несмотря на то, что разрешение UserDirs может использоваться
для доступа ко всем перечисленным директориям пользователя,
не рекомендуется его указывать,
если нет необходимости работать со всеми директориями.