Android各種Manager

來源:互聯網
上載者:User

標籤:else   rman   back   開關   ext   man   電源狀態   iss   param   

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

 

Android各種Manager

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.