日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型

發布時間:2024/7/5 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。