Как это было спросил, прежде чем, если у вас есть, что в вас 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), где вы устанавливаете флаг окна с помощью API Android.
Шаг 3: В классе Java QtActivity вызовите MyJavaClass.setActivity (это). Я делаю это в методе onCreate() и перед загрузкой приложения Qt.
Шаг 4: В MyCppClass используйте QAndroidJniObject для привязки функции C++ setWindowFlag() к Java-методу MyJavaClass.setWindowFlag().
Более подробную информацию можно найти на странице документации QAndroidJniObject.