Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型
原文地址: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。為了可以監測塢狀態的變化,只需要在清單文件中注冊一個廣播接收器就可以:
<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>你可以在對應的廣播接收器內獲取塢的類型以及狀態。
總結
以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ScrollView嵌套EditText
- 下一篇: Android官方开发文档Trainin