Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android官方開發文檔Training系列課程中文版:電池續航時間優化之檢查與監測塢的狀態與類型

Android官方開發文檔Training系列課程中文版:電池續航時間優化之檢查與監測塢的狀態與類型

編輯:關於Android編程

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/docking-monitoring.html

Android設備可以被放置在若干種不同的擴展塢中。這些擴展塢包括汽車塢與家庭塢以及數字與模擬塢。其中塢的狀態與充電狀態非常相近,因為這些塢也提供了充電功能。

譯者提示:這裡說的是一種擴展設備,Android中比較少見,而蘋果設備比較常見。我們常見的蘋果設備的擴展塢就是蘋果體驗店所見的各種小型音響設備。

APP在何種塢中的運行頻率取決於APP自身。你可以在設備處於APP塢時提高運動類APP的更新頻率,或者設備處於汽車塢時完全關閉更新,或者也可以在APP在更新交通信息時將更新頻率提高至最大。

這些塢的狀態也同樣通過粘性Intent廣播獲取,它可以用來查詢是否被放置在了某個塢中,如果被放置了,那麼可以查詢是何種類型的塢。

檢查當前塢的狀態

當前塢的狀態被放置在粘性Intent中。因為它是粘性的,所以不需要注冊廣播接收器。你可以直接通過registerReceiver()方法直接獲得這個Intent。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);

接下來則通過該Intent獲取當前塢的狀態:

int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

檢查當前塢的類型

如果設備被放置在塢中,那麼它可能處於以下類型中:
- Car
- Desk
- 低端桌面塢(模擬)
- 高端桌面塢(數字)

注意後面這兩種類型只在Android 11中介紹到,所以只需要統一檢查後面這三種類型就可以:

boolean isCar = dockState == EXTRA_DOCK_STATE_CAR;
boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK || 
                 dockState == EXTRA_DOCK_STATE_LE_DESK ||
                 dockState == EXTRA_DOCK_STATE_HE_DESK;

監測塢的狀態以及類型的變化

當設備被放置或移除塢時,系統會廣播一個ACTION_DOCK_EVENT。為了可以監測塢狀態的變化,只需要在清單文件中注冊一個廣播接收器就可以:


你可以在對應的廣播接收器內獲取塢的類型以及狀態。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved