Я пробовал форумы Qt, но безрезультатно. Я пытаюсь разработать приложение для Android, чтобы одна из функциональных возможностей меняла яркость подсветки планшета. Я успешно написал две программы в Android Studio (на Java), используя LayoutParams и Android putInt
Системная яркость для изменения яркости. Проблема возникает, когда я пытаюсь переместить код в мое приложение Qt. У меня работает код JNI, и он выполняет мои функции, но когда я вставляю код яркости, чтобы изменить метод яркости, приложение не работает.
Из того, что я понимаю об Android и об ошибках, моя проблема (я думаю) в том, что я не запускаю код в потоке пользовательского интерфейса. Я пытался заставить мой метод Java быть Runnable и использовать runonUiThread
но это не поддерживает ContentResolver
или окно, потому что это не деятельность.
У кого-нибудь есть опыт с этим, который может направить меня? Или есть какой-нибудь опыт работы с настройками Android?
Я ценю всех, кто помогает,
Эндрю
Вы могли бы иметь это в статическом методе Java как:
package com.MyApp;
public class BrightnessChanger
{
public static int change(int n)
{
float brightness = n / (float)255;
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = brightness;
getWindow().setAttributes(lp);
}
}
Затем вы можете вызвать эту статическую функцию Java из вашего кода C ++:
bool retVal = QAndroidJniObject::callStaticMethod<jint>
("com/MyApp/BrightnessChanger" // class name
, "change" // method name
, "(I)I" // signature
, 50);
Здесь вы передаете значение между 1
а также 255
к функции.