Название: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: 0x0001 от Сентябрь 27, 2014, 13:22 Здравствуйте!
Есть исходники программы на java для Android API 18, программа сложная - работа с SMS/GSM/GPRS/Blutooth & прочее, но юзеру не устраивает GUI. Задача: Имея исходники GUI Qt5.4 приложения, внедрить это java приложение в Qt5.4 приложение и скомпилировать все для Android 4.3.1. с Android & java дело не имели, как понимаю надо юзать классы QAndroidJniObject & QAndroidJniEnvironment ? GUI(View) отображает(и управляет) некоторой Моделью данных, тут в принципе достаточно осуществить Обмен сырыми данными между java & Qt5.4, модель, в принципе можно заполнять на стороне C++(Qt). т.е. понадобится примерно такой интерфейс: 1. Пересылать запросы на java сторону (например, запросить некоторые данные полученные по bluetooth 3.0) 2. Получить Ответ 3. Получать асинхронные сообщения (сигналы) от java , например пришла SMS Куда вообще смотреть, возможно ли это осуществить ? Спасибо! Название: Re: Android API18 (java) + Qt 5.3 (C++ & QML), data Трансферинг Отправлено: vregess от Сентябрь 27, 2014, 13:51 с Android & java дело не имели, как понимаю надо юзать классы QAndroidJniObject & QAndroidJniEnvironment ? Да.Куда вообще смотреть, возможно ли это осуществить? Да, можно все 3 пункта, синхронно и асинхронно, вопрос только в написании оберток с обеих сторон.Посмотри Qt Android Extras, там есть пример Qt Notifier. Он покажет, как работать с кастомной Activity. Все связи между java <--> с++ скорее всего будут идти через этот класс. Далее посмотри как вообще работает java в связке с c/c++ - документация по java native interface (JNI). Потом можно глянуть android NDK. PS Стоит ли цеплять qt, если уже есть готовая java-программа, может просто обновить UI? PPS размер шрифта нынче бесплатный. Название: Re: Android API18 (java) + Qt 5.3 (C++ & QML), data Трансферинг Отправлено: 0x0001 от Сентябрь 27, 2014, 18:39 Посмотри Qt Android Extras, там есть пример Qt Notifier. Он покажет, как работать с кастомной Activity. Все связи между java Спасибо! как раз то что надо, импортировал Весь java Eclipse проект в QtCreator проект (юзаю самобьюлд Qt5.4.0), ВСЕ заработало, Qt QML GUI работает с java... кстати QtCreator даже удобнее для чисто java проектов чем Eclipse, за исключением отсутствия контекстного Хелпа по библиотекам... Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: iLya84a от Сентябрь 29, 2014, 10:18 Ко всему сказанному хочу добавить, что в простых случаях необязательно наследовать от org.qtproject.qt5.android.bindings.QtActivity, чтобы связать Qt и Java. Приведу код своего пикера видео-файлов:
Код: package org.qtproject.qt5.android.bindings; На стороне С++ сохраняю интент: Код: QAndroidJniObject intent = QAndroidJniObject::callStaticObjectMethod( Код: const int REQUEST_CODE = 42; // Any unique number Результат получаю асинхронно. При этом вызывается моя реализация метода handleActivityResult (http://qt-project.org/doc/qt-5/qandroidactivityresultreceiver.html#handleActivityResult): Код: void FilePicker::handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data) Преимущество такого подхода в легкой интеграции с существующим проектом. Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: 0x0001 от Сентябрь 30, 2014, 19:25 Ко всему сказанному хочу добавить, что в простых случаях необязательно наследовать от [ СПАСИБО! Очень ценно!Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vulko от Октябрь 28, 2014, 12:46 оффтоп:
ну нифига вы даете...)) обычно стараются всячески без JNI и нативного кода обойтись, а вы ради всего лишь интерфейса готовы на такой гемор... :) может проще научиться собирать вьюхи в xml? :) Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vregess от Октябрь 29, 2014, 08:50 а вы ради всего лишь интерфейса Это твои домыслы.Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vulko от Октябрь 29, 2014, 08:59 Неужели?) Цитировать Есть исходники программы на java для Android API 18, программа сложная - работа с SMS/GSM/GPRS/Blutooth & прочее, но юзеру не устраивает GUI. Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vregess от Октябрь 29, 2014, 09:57 И что с того? Ты же пишешь а вы, наверное подразумевая всех участников, иначе бы обращался на ты, как в других постах.
Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vulko от Октябрь 29, 2014, 10:58 И что с того? Ты же пишешь а вы, наверное подразумевая всех участников, иначе бы обращался на ты, как в других постах. да лан, не придирайся к словам. всех ессесно не имел ввиду. хотя по мне, так это дрочерство, писать под андройд на qt... просто потому что андройд очень простая платформа. жаба по синтаксису почти плюсы, но в разы удобнее и проще. имхо автору логичнее было бы освоить xml layout'ы. Название: Re: Android API18 (java) + Qt 5.4 (C++ & QML), data Трансферинг [решено] Отправлено: vregess от Октябрь 29, 2014, 13:03 ok.
Согласен, в данном случае, лучше остаться на java. |