Как вы можете получить указатель на нативную активность, выполняющую ваше приложение Qt Android?

0

Как это было спросил, прежде чем, если у вас есть, что в вас Qt код для Android:

ANativeActivity* theActivity = <something>;

ANativeActivity_setWindowFlags( theActivity,
            AWINDOW_FLAG_DISMISS_KEYGUARD, 0 );

Как вы можете получить указатель на собственную активность, запускающую приложение Qt (бит <something>)?

Благодарю!

Теги:
qt
qt5.2

1 ответ

0

Я не очень могущественный, если вы можете указать указатель C++ на объект Java QtActivity, поскольку они живут в двух разных мирах.

Однако вы можете достичь того, что вам нужно, используя QAndroidJniObject, который доступен начиная с Qt 5.2. Ниже приводится схема:

Шаг 1. Создайте класс C++ под названием MyCppClass с функцией, называемой setWindowFlag (int flag, int val).

Шаг 2. Создайте класс Java MyJavaClass с помощью метода setActivity (Activity activity). Создайте еще один метод, называемый setWindowFlag (int flag, int val), где вы устанавливаете флаг окна с помощью API Android.

Шаг 3: В классе Java QtActivity вызовите MyJavaClass.setActivity (это). Я делаю это в методе onCreate() и перед загрузкой приложения Qt.

Шаг 4: В MyCppClass используйте QAndroidJniObject для привязки функции C++ setWindowFlag() к Java-методу MyJavaClass.setWindowFlag().

Более подробную информацию можно найти на странице документации QAndroidJniObject.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню