#android #qt #qdesktopservices
#Android #qt #qdesktopservices
Вопрос:
Я пытаюсь открыть PDF-файл на Android, который я загрузил на:
QStandardPaths::writableLocation(QStandardPaths::TempLocation)
Код для открытия PDF:
QUrl url;
if (filePath.startsWith("\\") || filePath.startsWith("//")) {
url.setUrl(QDir::toNativeSeparators(filePath));
} else {
url = QUrl::fromLocalFile(filePath);
}
return QDesktopServices::openUrl(url);
Я получаю следующую ошибку:
android.os.FileUriExposedException: file:///data/user/0/my.app/cache/myPDF.pdf exposed beyond app through Intent.getData()
Есть ли способ решить эту проблему с помощью Qt?
Комментарии:
1. Бьюсь об заклад, что поиск «qt android fileprovider» должен сделать это
2. Спасибо, я понял, что поисковый запрос был тем, что я искал, в этом блоге действительно хорошо описывается использование FileProvider: blog.qt.io/blog/2017/12/01/sharing-files-android-ios-qt-app
3. проблема в том, что если вы «всего лишь qt guy», вы не будете знать о fileprovider … вот почему было бы сложно получить правильный запрос 🙂