Android之电源管理 PowerManager解决远程拍照手机黑屏问题
解決的問題:
這次使用PowerManager是因為我們后臺遠程拍照的時候,不支持手機黑屏情況拍照,如果手機黑屏,然后用PowerManager進行臨時運行CPU
功能介紹:
PowerManager這個類主要是用來控制電源狀態的. 通過使用該類提供的api可以控制電池的待機時間,一般情況下不要使用。如果確實需要使用,那么盡可能的使用最低級別的WakeLocks鎖。并且確保使用完后釋放它。你可以通過context.getSystemService(Context.POWER_SERVICE)的方式獲得PowerManager的實例。在PowerManager中,最主要的newWakeLock方法,如下:
??? public WakeLock newWakeLock(int flags, String tag)
??? {
??????? return new WakeLock(flags, tag);
??? }
??? 這個方法將創建WakeLock對象,通過調用此對象的方法你就可以方便的去控制電源的狀態。方法如下:
????
??? PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
??? PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
??? wl.acquire();
????? 屏幕將停留在設定的狀態,一般為亮、暗狀態
??? wl.release();
????? 釋放掉正在運行的cpu或關閉屏幕。
?
下面定義的flag是在newWakeLock方法中要接收的參數,通過該flag,你可以定義系統的電源的展示效果。比如:
?*???????????????????????? ? ? ? ? ? ? ? ? ? ? ? cpu?????? screen?????? keyboard
?* PARTIAL_WAKE_LOCK????????????? ? on???????? off?????????? off
?* SCREEN_DIM_WAKE_LOCK??????? on???????? dim?????????? off
?* SCREEN_BRIGHT_WAKE_LOCK?? on???????? bright??????? off
?* FULL_WAKE_LOCK????????? ? ? ? ? ? on???????? bright??????? bright
?
? 這些flag是相互排斥的,一次只能定義一個。
?
如果你持有PARTIAL_WAKE_LOCK鎖,不論任何定時器甚至是按下電源按鈕,cpu都將繼續運行,無法進入休眠狀態。除非你釋放掉它。
其他鎖的話,雖然cpu也在運行,但是當用戶按下電源按鈕時,設備將立刻進入休眠狀態。
?
?正常情況下wakelocks實際上是沒有被打開的,當需要時,它將通過特定的flag啟動屏幕和鍵盤。 比如在應用中,涉及到向用戶發送消息時,需要讓用戶立刻看到。此時會點亮屏幕。當WakeLock鎖被釋放的時候,activity的定時器將被重設,這將導致屏幕亮更長的時間。
總結
以上是生活随笔為你收集整理的Android之电源管理 PowerManager解决远程拍照手机黑屏问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单密码破解
- 下一篇: Android之TrafficStats