Android中五大Manager詳解及使用技巧

學習Android的同學注意了?。?!

學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Android學習交流群,群號碼:364595326? 我們一起學Android!

一、PowerManager

主要是用來控制電源狀態,設置屏幕狀態,和電池待機狀態

PowerManager??pm?=?((PowerManager)getSystemService(POWER_SERVICE));

這里我需要保持屏幕長期喚醒,不被鎖屏,所以我調用WakeLock。

WakeLock?wake?=?pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK?|powerManager.ON_AFTER_RELEASE,?**Activity.class?);

wake.acquire();//請求執行

相關的flag:

PARTIAL_WAKE_LOCK?:?保持CPU?運轉,屏幕和鍵盤燈有可能是關閉的。

SCREEN_DIM_WAKE_LOCK:保持CPU?運轉,允許保持屏幕顯示但有可能是灰的,允許關閉鍵盤燈

SCREEN_BRIGHT_WAKE_LOCK:保持CPU?運轉,允許保持屏幕高亮顯示,允許關閉鍵盤燈

FULL_WAKE_LOCK??:?保持CPU?運轉,保持屏幕高亮顯示,鍵盤燈也保持亮度

權限獲得:

二、WindowManager

調用window,設置window里面screenBrightness參數的值,但卻短暫設置屏幕亮度的亮度,在某個activity下面才可以生效。

/**

*?設置屏幕亮度

*/

private?void?setWindowScreen(){

Window?localWindow?=?getWindow();

WindowManager.LayoutParams?localLayoutParams?=?localWindow.getAttributes();

float?f?=?5?/?255.0F;

localLayoutParams.screenBrightness?=?f;

localWindow.setAttributes(localLayoutParams);

}

獲得權限:

發現只有在當前activity下生效,需要改動系統文件下面的相關數值,調用Uri(類似鏈接)方法。

/**

*?保存屏幕亮度最低

*?save?light?state

**/

public??void?saveBrightness(ContentResolver?resolver)?{

Uri?uri?=?android.provider.Settings.System.getUriFor("screen_brightness");

android.provider.Settings.System.putInt(resolver,?"screen_brightness",?0);

resolver.notifyChange(uri,?null);

}

三、WifiManager

就是無限管理相關的,類似獲得wifi鏈接名字,判斷是否鏈接,開關等一些和無線相關。

WifiManager?manager?=?(WifiManager)context.getSystemService(Context.WIFI_SERVICE);

WifiInfo?info?=?manager.getConnectionInfo();

wifiinfo里面包含很多東西,無限的IP,名字,ISSID,物理地址等很多信息,這里我需要獲得查看是否鏈接實驗室的無線獲得無線的名字,名字是SSID。

String?ssId?=?info.getSSID();

manager.setWifiEnabled(true);//打開wifi

manager.setWifiEnabled(false);//?關閉wifi

相關權限:

四、ConnectivityManager

主要管理網絡連接相關操作。

ConnectivityManager?connManager?=?(ConnectivityManager)

context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetWorkInfo?netinfo?=?connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)

NetWorkInfo里面就包括網絡連接的信息,包括連接狀態,網絡是否可用等相關操作

int?code?=?netinfo.getState();

if?(wifiState?==?State.CONNECTED?||?wifiState?==?State.CONNECTING)

return?200;//?連接成功

else

return?500;?//?連接失敗

相關權限:

五、ActivityManager

是與系統中所有運行著的Activity交互提供了接口,主要的接口圍繞著運行中的進程信息,任務信息,服務信息等。

ActivityManager?am?=?(ActivityManager)?this.getSystemService(ACTIVITY_SERVICE);

MemoryInfo?mi?=?new?MemoryInfo();

am.getMemoryInfo(mi);

am.getRunningAppProcesses();

am.getRunningServices();

am.getDeviceConfigurationInfo();

am.killBackgroundProcessed(PackageName);

am.restartPackage(PackageName);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容