Как это было спросил до, если у вас есть этот код Qt для Android:
ANativeActivity* theActivity = <something>;
ANativeActivity_setWindowFlags( theActivity,
AWINDOW_FLAG_DISMISS_KEYGUARD, 0 );
Как вы можете получить указатель на нативную активность, выполняющую ваше приложение Qt ( <something>
немного)?
Спасибо!
Я не очень возможен, если вы можете получить указатель 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.
Других решений пока нет …