使用Qt Android

时间:2015-06-10 00:14:13

标签: java android c++ qt brightness

我尝试了Qt论坛,但没有用。我正在尝试开发一个Android应用程序,其中一个功能是改变平板电脑背光的亮度。我已经使用LayoutParams和Android putInt系统亮度在Android Studio(Java)中成功编写了两个程序来改变亮度。当我尝试将代码移动到我的Qt应用程序时出现问题。我有JNI代码工作,它运行我的功能,但当我粘贴亮度代码以更改亮度方法时,应用程序失败。

根据我对Android和错误陈述的理解,我的问题(我认为)是我没有在UI线程上运行代码。我试图强制我的Java方法成为Runnable并使用runonUiThread但是它不支持ContentResolver或Window,因为它不是Activity。

有没有人有这方面的经验可以指导我?或者在Android设置中获得任何工作经验?

感谢所有人的帮助, 安德鲁

1 个答案:

答案 0 :(得分:2)

您可以在静态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);
    }
}

然后,您可以从C ++代码中调用此静态Java函数:

bool retVal = QAndroidJniObject::callStaticMethod<jint>
                        ("com/MyApp/BrightnessChanger" // class name
                        , "change" // method name
                        , "(I)I" // signature
                        , 50);

在此处,您将1255之间的值传递给函数。