I use this method to control the screen brightness:
public void ChangeBrightness (int Value) {
final WindowManager.LayoutParams params;
params = getWindow (). getAttributes ();
params.screenBrightness = 1;
params.screenBrightness = (float) ((float) Value / 10.0);
getWindow (). setAttributes (params);
} Accordingly, for example, in using with the SeekBar slider to adjust the brightness I prescribe:
onProgressChanged (SeekBar seekBar, int progress, boolean fromUser) {
ChangeBrightness (progress);
} Everything works with a bang.
But I want to deal with the creation of an external library and therefore I want to bring this method into it.
I created a library, made public variables for data transfer and a public method. In class name I use extends AppCompatActivity
However, when you try to start, a NullPoinerException crashes. Judging by the message, there is a problem with WindowManager.LayoutParams .
What am I doing wrong?
Library code:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.WindowManager;
public class BrightnessControl extends AppCompatActivity {
public static WindowManager.LayoutParams params;
public static String _text;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
final WindowManager.LayoutParams get_params = getWindow (). getAttributes ();
params = get_params;
params.screenBrightness = 1;
}
public void ChangeBrightness (int Value, String result) {
params.screenBrightness = (float) ((float) Value / 10.0);
getWindow (). setAttributes (params);
getWindow (). addFlags (WindowManager.LayoutParams.FLAGS_CHANGED);
_text = String.valueOf (Value);
result = _text;
}
} Logs
java.lang.NullPointerException: float android.view.WindowManager $ LayoutParams.screenBrightness' on a null object reference
at com.vrcorp.brightnessunitylib.BrightnessControl.ChangeBrightness (BrightnessControl.java:23)
at com.vrcorp.brightness.MainActivity $ 2.onProgressChanged (MainActivity.java:48)
at android.widget.SeekBar.onProgressRefresh (SeekBar.java:93)
at android.widget.ProgressBar.doRefreshProgress (ProgressBar.java:1303)
at android.widget.ProgressBar.refreshProgress (ProgressBar.java:1315)
at android.widget.ProgressBar.setProgress (ProgressBar.java:1361)
at android.widget.AbsSeekBar.trackTouchEvent (AbsSeekBar.java:666)
at android.widget.AbsSeekBar.onTouchEvent (AbsSeekBar.java:610)
at android.view.View.dispatchTouchEvent (View.java:9306)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2255)
at com.android.internal.policy.PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:2403)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1737)
at android.app.Activity.dispatchTouchEvent (Activity.java:2820)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:63)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:63)
at com.android.internal.policy.PhoneWindow $ DecorView.dispatchTouchEvent (PhoneWindow.java:2364)
at android.view.View.dispatchPointerEvent (View.java:9526)
at android.view.ViewRootImpl $ ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4267)
at android.view.ViewRootImpl $ ViewPostImeInputStage.onProcess (ViewRootImpl.java:4133)
at android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java.367)
at android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl.java.73727)
at android.view.ViewRootImpl $ InputStage.forward (ViewRootImpl.java:37693)
at android.view.ViewRootImpl $ AsyncInputStage.forward (ViewRootImpl.java:3819)
at android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3701)
at android.view.ViewRootImpl $ AsyncInputStage.apply (ViewRootImpl.java:3876)
at android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java.367)
at android.view.ViewRootImpl $ InputStage.onDeliverToNext (ViewRootImpl.java.73727)
at android.view.ViewRootImpl $ InputStage.forward (ViewRootImpl.java:37693)
at android.view.ViewRootImpl $ InputStage.apply (ViewRootImpl.java:3701)
at android.view.ViewRootImpl $ InputStage.deliver (ViewRootImpl.java.367)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.javament959)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:5933)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.javailiate894)
at android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:6062)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce (Native Method)
at android.os.MessageQueue.next (MessageQueue.java:323)
at android.os.Looper.loop (Looper.java:135)
at android.app.ActivityT