Intereting Posts
Публикация мобильного сайта в App Store и Google Play Я хочу проверить громкость голоса в андроиде Как сигнализировать синхронизацию с Android SyncManager? Получил «неподдерживаемый файл класса версии 52.0» после включения модуля в проект Android & Maven: ускорить компиляцию и развертывание проекта Зависимость между тестами JUnit, которые работают на нескольких устройствах одновременно Приложение для Android: отображение элементов наложения в AsyncTask Невозможно выполнить dex: несколько файлов dex определяют Lcom / 9oldandroids / animation / Animator $ AnimatorListener; Исключение имени не найдено в PackageManager.GET_CONFIGURATIONS Различия в виджетах для Android Не удалось войти в Facebook (ошибка – идентификатор приложения не может быть Null) Доступ к моему локальному хосту с моего Android-планшета Отображение DatePicker с полем года или без него Учебники для OpenSL ES для Android Светодиодный фонарик на Galaxy Nexus, управляемый каким API?

Выполнение java-файла в qt

Я пытаюсь выполнить java-файл внутри qt, вот мой код java-файла:

import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; public class Main extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // TODO Auto-generated method stub super.onUpdate(context, appWidgetManager, appWidgetIds); } } 

Вопрос в том, как этот java-файл можно вызвать, я запутался и не знаю, как вызвать функцию onUpdate, любые идеи?

Чтобы запустить Java-код в приложении Qt Android, вы должны использовать модуль Qt Android Extras, который содержит дополнительные функции для разработки на Android.

Вы можете использовать JNI для вызова функции Java из C / C ++ или вызова функции C / C ++ из Java.

Давайте рассмотрим, что у вас есть статический метод Java:

 package com.MyApp; public class JavaClass { public static int SomeMethod(int n) { ... } } 

Сначала вам нужно добавить это в ваш .pro-файл:

 QT += androidextras 

И включите соответствующий файл заголовка:

 #include <QAndroidJniObject> 

Затем вы можете вызвать статическую java-функцию из вашего кода на C ++, например:

 bool retVal = QAndroidJniObject::callStaticMethod<jint> ("com/MyApp/JavaClass" // class name , "SomeMethod" // method name , "(I)I" // signature , val); 

Для более подробного объяснения вы можете это увидеть.