Qt 6 Android: намерение камеры открывается, но изображение не сохраняется на устройстве при использовании FileProviderAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Qt 6 Android: намерение камеры открывается, но изображение не сохраняется на устройстве при использовании FileProvider

Сообщение Anonymous »

Я разрабатываю приложение для Android с использованием Qt 6 (C++) и пытаюсь открыть системную камеру и сохранить захваченное изображение в хранилище устройства.
Приложение камеры открывается правильно, фотография делается, но изображение никогда не сохраняется по указанному пути на устройстве.

Код: Выделить всё

void MainWindow::open_system_camera() {
QCameraPermission camPermission;
if (qApp - >checkPermission(camPermission) != Qt::PermissionStatus::Granted) {
qApp - >requestPermission(camPermission, this, [this](const QPermission & perm) {
if (perm.status() == Qt::PermissionStatus::Granted) open_system_camera();
});
return;
}

const QString dirPath = "/storage/emulated/0/Download/EtheryMobile";
QDir().mkpath(dirPath);

const QString timestamp = QDateTime::currentDateTime().toString("dd_MM_yyyy_HH_mm_ss");

pendingCameraFilePath = dirPath + "/photo_" + timestamp + ".jpg";

qInfo()  (), fileObj.object());

QJniObject intent("android/content/Intent", "(Ljava/lang/String;)V", QJniObject::fromString("android.media.action.IMAGE_CAPTURE").object < jstring > ());

intent.callObjectMethod("putExtra", "(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;", QJniObject::fromString("android.intent.extra.OUTPUT").object < jstring > (), uri.object());

intent.callObjectMethod("addFlags", "(I)Landroid/content/Intent;", 0x00000001 | 0x00000002 // GRANT_READ_URI_PERMISSION | GRANT_WRITE_URI_PERMISSION
);

activity.callMethod < void > ("startActivity", "(Landroid/content/Intent;)V", intent.object());

cameraCheckTimer - >start();
}
Я уже пытался сделать:
Использование FileProvider с правильными полномочиями
Добавление FLAG_GRANT_READ_URI_PERMISSION и FLAG_GRANT_WRITE_URI_PERMISSION
Проверка конфигурации поставщика AndroidManifest.xml
Предварительное создание каталога
Запись пути к целевому файлу
Использование таймера для проверки создания файла после закрытия камеры
Использование QtNative::activity() и QAndroidApplication::context()
Запрос разрешения камеры через QCameraPermission
Я хочу знать, что я делаю неправильно? Будем признательны за любые рекомендации или рабочий пример для Qt 6.

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-using-fi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»