我們大家在用手機的時候,會遇到這樣的一個問題,就是想讓我們的手機螢幕一直亮著怎麼辦。大家會想到的是,在手機設定裡有一個不省電模式,選擇這個就可以了,但是我們要在代碼中是怎麼樣辦那,有兩種方法就可以解決這個問題。
第一種方法:
大家想一想,我們在android裡那個地方老是常定義許可權呀,有了這個提示,大家就會想到是哪個檔案了吧,AndroidManifest.xml:我們要在這個檔案裡定義一下許可權就可以實現我們的手機螢幕保持常亮了。這個方法也是最簡單的一個方法,那麼我們下面就來看看它的代碼:
Java代碼:
01.<uses-permission android:name="android.permission.WAKE_LOCK" />
01.PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
02.PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
03.// in onResume() call
04.
05.mWakeLock.acquire();
06.// in onPause() call
07.mWakeLock.release();
我們再在main代碼中寫上PowerManager.SCREEN_DIM_WAKE_LOCK,這個是我們android系統提供給我們的,我們要把它用上,這句代碼的意思是長亮的意思,這樣我們就可以實現了,因為我們在上面已經定義了許可權。這樣我們就有權利使用這個長亮屬性。這就是第一種方法。
第二種方法:
第二種我們不怎麼常用,但有的時候我們也能用得到,我們就來講講這第二種方法吧。這種方法我們就在main代碼中做一個方法,這個方法就是onCreate(Bundle icicle)我們要在括弧裡寫上參數,這樣我們才可以用這個參數,我們在super.onCreate(icicle);這個句的意思就是得到參數,我們也就是實現完了,最後我們在找到LayoutParams.FLAG_KEEP_SCREEN_ON這個android系統提供給我們的屬性,這樣我們第二個方法就完事了,這個方法就是不用在AndroidManifest.xml:裡定義許可權了。這樣也不比較麻煩,但有時會把參數給忘了,這個是重點,因為這樣我們也實現不了效果,這麼說的,兩個方法有利有弊,用的時候就要看開發人員自己的喜好了,喜好哪個就用哪個。
Java代碼:
01.@Override
02.protected void onCreate(Bundle icicle) {
03.super.onCreate(icicle);
04.
05.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
06.}
補充一下建立鎖時flag的值及意義:
int flags
各種鎖的類型對CPU 、螢幕、鍵盤的影響:
PARTIAL_WAKE_LOCK :保持CPU 運轉,螢幕和鍵盤燈有可能是關閉的。
SCREEN_DIM_WAKE_LOCK :保持CPU 運轉,允許保持螢幕顯示但有可能是灰的,允許關閉鍵盤燈
SCREEN_BRIGHT_WAKE_LOCK :保持CPU 運轉,允許保持螢幕高亮顯示,允許關閉鍵盤燈
FULL_WAKE_LOCK :保持CPU 運轉,保持螢幕高亮顯示,鍵盤燈也保持亮度