Android 裝置可以插入不同類型的座架。這些 包括車用座架、家用座架,以及數位或類比座架。座架狀態為 通常跟充電狀態最密切的關係 因為許多座架提供了 放在座架上。
您的應用程式會影響手機在座架狀態的更新率。如要提高 位在桌面座架上時,運動新聞應用程式的更新頻率;或 如果裝置在車上座架充電,請完全停用更新功能。相反地 在背景服務更新時,同時最大化更新 路況。
座架狀態也會以固定式播送
Intent
,
可讓您查詢裝置是否已插入座架,以及插入座架時使用的
例如
判斷目前的座架狀態
座架狀態詳細資料隨附在
固定式廣播訊息
ACTION_DOCK_EVENT
動作。它會固定起來
registerReceiver()
,
傳入 null
做為廣播接收器。下列程式碼片段
說明如何完成此程序:
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;
判斷目前的座架類型
裝置可以插入座架時 可以插入下列任一項 不同類型的座架:
- 車輛
- 書桌
- 低端 (類比) 桌面
- 高階 (數位) 桌面
第二種選項僅在 Android API 級別 11 中推出,因此 如果只想瞭解 而不是專門用數位或類比類型
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;