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

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

ANativeActivity* theActivity = <something>;

ANativeActivity_setWindowFlags( theActivity,
AWINDOW_FLAG_DISMISS_KEYGUARD, 0 );

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

Спасибо!

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), в котором вы устанавливаете флаг окна с помощью Android API.

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]