2017-02-12 84 views
0

即使設置爲最小,我手機的顯示屏背光也會在黑暗中傷害到我。我檢查了文件/sys/class/leds/lcd-backlight/brightness的有效值範圍,發現它需要0-255。 0顯示關閉,1是最小亮度,255是最大亮度。android應用可以寫入/ sys /沒有root權限嗎?

當android系統顯示設置爲最小時,將sys文件的值設置爲5,這會在黑暗中傷害我的眼睛。我回應根終端的值1,它將亮度設置爲最低值,這使得我的眼睛在黑暗中變得舒適。

sys文件由用戶system和組system擁有,其權限爲-rw-r--r--

我需要我的應用程序寫入/sys/class/leds/lcd-backlight/brightness將顯示器亮度設置爲非常小的值。如果我在應用程序中使用su命令,我可以修改該文件。但是我想在沒有超級用戶權限的情況下做同樣的事情。是否有某種允許我修改文件的權限?

有沒有root權限修改/ sys文件的可能方法是什麼?

回答

0

您不需要用戶權限即可更改屏幕的亮度。只是這樣做:

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

變量BackLightValue用於設置亮度,自動,但你可以改變它到任何你需要

+0

謝謝。這隻適用於應用程序內,我想我需要設置'onPause()'和其他方法來使其在整個系統範圍內。此外,似乎'BackLightValue'變量的類型爲float。我只檢查隨機值。我該如何在float中使用1 - 255個整數值? –