0

我想创建一个连接到javascript的插件,同时使用cordova作为插件,这是我的javascipt代码:

var Brightness = function() {};

Brightness.prototype.brightnessUp = function( success, error ) 
{
    return cordova.exec( success, error, "Brightness", "brightnessUp", [] );
};

和我的插件代码:

public PluginResult execute(String action, JSONArray data, String callbackId) {
    PluginResult result = null;
    if(action.equals(BRIGHTNESS_UP)){
        lightUP();
        result = new PluginResult(Status.OK);
    }

    return result;
}

public void lightUP(){
    WindowManager.LayoutParams layoutParams = cordova.getActivity().getWindow().getAttributes();
    layoutParams.screenBrightness = 1.0f;
    cordova.getActivity().getWindow().getAttributes().screenBrightness = 1.0f;
    cordova.getActivity().getWindow().setAttributes(layoutParams);
    cordova.getActivity().getWindow().addFlags(WindowManager.LayoutParams.SCREEN_BRIGHTNESS_CHANGED);
}

不知何故,我不知道为什么“setAttributes(layoutParam)”没有对我的应用程序中的亮度屏幕进行任何更改。

不小心按下主页按钮,然后返回应用程序,屏幕亮度突然根据 layoutParams 改变。

有什么解决办法吗?

4

1 回答 1

0

你所拥有的在一定程度上是正确的。您需要在设置亮度后立即启动虚拟活动,以使更改生效。看看这个 SO 答案:

https://stackoverflow.com/a/7658364/41679

于 2012-09-12T01:02:13.757 回答