Android各種Manager-郭通

一、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 運轉,保持屏幕高亮顯示,鍵盤燈也保持亮度

權限獲得:

<uses-permission android:name="android.permission.WAKE_LOCK" /  >

二、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);

    }

獲得權限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  

發現只有在當前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

相關權限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

四、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; // 連接失敗

相關權限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

五、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);

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章