Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.184.7] |
|
Сообщ.
#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); далее обрабатываю ответ выбора фотки из галереи: 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) { const QString fileURI = data.callObjectMethod("getData","()Landroid/net/Uri;").toString(); } } Ответ получаю в fileURI в виде URI ссылки - "content://media/external/images/media/3300" ВОПРОС: как средствами JNI преобразовать URI ссылку в реальный путь к файлу или получить QByteArray ?? PS: Видел делают на яве классы обработчики и потом к ним обращаются, но тут неясно как и где размещать эти классы в системе ..... |