Russian Qt Forum
Ноябрь 01, 2024, 01:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAndroidActivityResultReceiver получить ссылку на файл  (Прочитано 4044 раз)
vav2001
Гость
« : Август 25, 2017, 09:56 »

Из QT под андроид вызываю галерею и выбираю файл. Цель получить ссылку на выбранный файл.

1) Вызываю галлерею
Код:
 QAndroidJniObject action = QAndroidJniObject::fromString( "android.intent.action.PICK");
 QAndroidJniObject intent( "android/content/Intent");
 intent.callObjectMethod( "setAction", "(Ljava/lang/String;)Landroid/content/Intent;", action.object<jstring>());
 intent.callObjectMethod( "setType", "(Ljava/lang/String;)Landroid/content/Intent;", QAndroidJniObject::fromString("image/*").object<jstring>());
 QtAndroid::startActivity( intent.object<jobject>(), 101,this);

2) Обрабатываю ответ выбора
Код:
virtual void handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject & data) override {
        jint RESULT_OK = QAndroidJniObject::getStaticField<jint>("android/app/Activity", "RESULT_OK");
        if (receiverRequestCode == 101 && resultCode == RESULT_OK) {
            QAndroidJniObject activity = QtAndroid::androidActivity();
            QAndroidJniObject videoUri = data.callObjectMethod(
                                "getData",
                                "()Landroid/net/Uri;");
            jstring string = videoUri.object<jstring>(); //ТУТ ПОНИМАЮ ЧТО РЕЗУЛЬТАТ НЕ ТОТ ! - цифровое значение
        }
}

Подскажите как из параметра const QAndroidJniObject & data корректно вытащить путь к файлу ?
Записан
vav2001
Гость
« Ответ #1 : Август 25, 2017, 15:41 »

Код:
const QString fileURI = data.callObjectMethod("getData","()Landroid/net/Uri;").toString();
Вот этот код работает но возвращает URI ссылку. Как преобразовать ее к реальному пути средствами JNI ?
или
по второму варианту написать класс на яве и обращаться к нему, но тут непонятно где и как размещать написанный класс конвертации ...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 21.