อุปกรณ์ที่ใช้ Android สามารถวางลงในแท่นชาร์จประเภทต่างๆ ได้ เหล่านี้ รวมถึงแท่นชาร์จในรถ แท่นชาร์จในบ้าน และแท่นชาร์จแบบดิจิทัลหรือแอนะล็อก สถานะแท่นชาร์จคือ มักลิงก์อย่างใกล้ชิดกับสถานะการชาร์จ เนื่องจากแท่นชาร์จจำนวนมากให้พลังงาน อุปกรณ์ที่วางอยู่บนแท่นชาร์จ
แอปของคุณส่งผลต่ออัตราการอัปเดตของโทรศัพท์ในสถานะแท่นชาร์จ คุณสามารถเพิ่ม ความถี่ในการอัปเดตแอปข่าวกีฬาเมื่ออยู่บนแท่นชาร์จบนเดสก์ท็อป หรือ ปิดการอัปเดตโดยสมบูรณ์หากอุปกรณ์วางอยู่บนแท่นชาร์จในรถยนต์ ในทางกลับกัน คุณสามารถ เพิ่มการอัปเดตให้มากที่สุดขณะวางอยู่บนแท่นชาร์จหากบริการในเบื้องหลังกำลังอัปเดต สภาพการจราจร
สถานะแท่นชาร์จเป็นแบบติดหนึบด้วย
Intent
,
ช่วยให้คุณทราบว่าอุปกรณ์อยู่บนแท่นชาร์จไหมและอยู่ในแท่นชาร์จประเภทใด
ดังนั้น
ระบุสถานะแท่นชาร์จปัจจุบัน
รายละเอียดสถานะแท่นชาร์จรวมอยู่เป็นส่วนเพิ่มเติมใน
การออกอากาศแบบติดหนึบของ
ACTION_DOCK_EVENT
การดำเนินการ เนื่องจากชื่อนี้เป็นแถบติดหนึบ คุณจึงสามารถโทรออกได้
registerReceiver()
,
การส่งผ่านใน null
ในฐานะ Broadcast Receiver ข้อมูลโค้ดต่อไปนี้
แสดงวิธีดำเนินขั้นตอนนี้จนเสร็จสมบูรณ์
Kotlin
val dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter -> context.registerReceiver(null, ifilter) }
Java
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT); Intent dockStatus = context.registerReceiver(null, ifilter);
คุณสามารถดึงข้อมูลสถานะแท่นชาร์จปัจจุบันจาก
เพิ่มอีก EXTRA_DOCK_STATE
:
Kotlin
val dockState: Int = dockStatus?.getIntExtra(EXTRA_DOCK_STATE, -1) ?: -1 val isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED
Java
int dockState -1; if (dockStatus != null) { dockState = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1); } boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
ระบุประเภทแท่นชาร์จปัจจุบัน
ถ้าวางอุปกรณ์บนแท่นชาร์จ คุณสามารถวางอุปกรณ์บนแท่นชาร์จใน 4 แบบต่อไปนี้ ประเภทแท่นชาร์จต่างๆ:
- รถยนต์
- โต๊ะทำงาน
- เดสก์โลว์เอนด์ (แอนะล็อก)
- โต๊ะระดับไฮเอนด์ (ดิจิทัล)
ตัวเลือก 2 รายการหลังจะเปิดตัวเฉพาะใน Android API ระดับ 11 แนวทางปฏิบัติที่ดีในการตรวจหาเดสก์ทั้ง 3 ประเภทเมื่อคุณสนใจ ประเภทของแท่นชาร์จแทนที่จะเป็นเวอร์ชันดิจิทัลหรือแอนะล็อกโดยเฉพาะ
Kotlin
val isCar: Boolean = dockState == EXTRA_DOCK_STATE_CAR val isDesk: Boolean = dockState == EXTRA_DOCK_STATE_DESK || dockState == EXTRA_DOCK_STATE_LE_DESK || dockState == EXTRA_DOCK_STATE_HE_DESK
Java
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;