簡體   English   中英

Android屏幕亮度更改不起作用

[英]Android screen brightness changes not working

按住按鈕時,我有以下代碼可更改屏幕亮度

ImageButton mfdBRTUp = (ImageButton) findViewById(R.id.imageButtonBRTup);
mfdBRTUp.setOnTouchListener(new OnTouchListener() {
    boolean mHeldDown = false;
    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {


        if (arg1.getAction()==MotionEvent.ACTION_DOWN){
            mHeldDown = true;
            Thread thread = new Thread()
            {
                @Override
                public void run() {
                    try {
                        while(mHeldDown) {
                            MainActivity.this.runOnUiThread(new Runnable() {
                                public void run() {
                                    mBackLightValue += 4;
                                    if(mBackLightValue>100)
                                        mBackLightValue=100;
                                    Log.d("onCreateOptionsMenu", "onTouch ACTION_DOWN mBackLightValue="+mBackLightValue);
                                    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
                                    layoutParams.screenBrightness = mBackLightValue;
                                    getWindow().setAttributes(layoutParams);
                                }
                            });                                 
                            sleep(100);
                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            };
            thread.start();

        }
        if (arg1.getAction()==MotionEvent.ACTION_UP){
            mHeldDown = false;
        }
        return false;
    }
});

一切似乎都很好,logcat輸出顯示mBackLightValue上升到100(當然,我還有另一個幾乎完全相同的按鈕)

問題是,它什么都不做。 我在設置中檢查了屏幕亮度控件,但它不是自動的。

我已經讀過這個主題的多個主題,而且所有人似乎都說唯一需要的是

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = mBackLightValue;
getWindow().setAttributes(layoutParams);

沒有權限或其他任何東西,所以我想念什么? 謝謝。

您的代碼似乎將亮度提高到100,但屏幕亮度應在0到1的范圍內,而不是0到100的范圍 任何超過1的值都將被讀取為全亮度,這可能是造成您問題的原因。 嘗試更改代碼以增加0.04,最大增加為1,而不是4和100。

來源: http : //developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM