java — Управление яркостью планшета с помощью Qt Android

Я пробовал форумы Qt, но безрезультатно. Я пытаюсь разработать приложение для Android, чтобы одна из функциональных возможностей меняла яркость подсветки планшета. Я успешно написал две программы в Android Studio (на Java), используя LayoutParams и Android putInt Системная яркость для изменения яркости. Проблема возникает, когда я пытаюсь переместить код в мое приложение Qt. У меня работает код JNI, и он выполняет мои функции, но когда я вставляю код яркости, чтобы изменить метод яркости, приложение не работает.

Из того, что я понимаю об Android и об ошибках, моя проблема (я думаю) в том, что я не запускаю код в потоке пользовательского интерфейса. Я пытался заставить мой метод Java быть Runnable и использовать runonUiThread но это не поддерживает ContentResolver или окно, потому что это не деятельность.

У кого-нибудь есть опыт с этим, который может направить меня? Или есть какой-нибудь опыт работы с настройками Android?

Я ценю всех, кто помогает,
Эндрю

3

Решение

Вы могли бы иметь это в статическом методе 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 к функции.

2

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


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