装着状態とタイプを特定して監視する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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;
現在のホルダータイプを特定する
デバイスをホルダーに装着しているときは、次の 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;
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[null,null,["最終更新日 2025-07-27 UTC。"],[],[],null,["# Determine and monitor the docking state and type\n\nAndroid-powered devices can be docked into different kinds of docks. These\ninclude car docks, home docks, and digital or analog docks. The dock state is\ntypically closely linked to the charging state, as many docks provide power to\ndocked devices.\n\nYour app affects the phone's update rate in the dock state. You can increase\nthe update frequency of a sports news app when it's in the desktop dock, or\ndisable your updates completely if the device is car docked. Conversely, you can\nmaximize your updates while car docked if your background service is updating\ntraffic conditions.\n\nThe dock state is also broadcast as a sticky\n[Intent](/reference/android/content/Intent),\nletting you query whether the device is docked and in which kind of dock if\nso.\n\nDetermine the current docking state\n-----------------------------------\n\nThe dock state details are included as an extra in a\n[sticky broadcast](/topic/security/risks/sticky-broadcast) of the\n[ACTION_DOCK_EVENT](/reference/android/content/Intent#ACTION_DOCK_EVENT)\naction. Because it's sticky, you can call\n[registerReceiver()](/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)),\npassing in `null` as the broadcast receiver. The following snippet\nshows how to complete this process: \n\n### Kotlin\n\n```kotlin\nval dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter -\u003e\n context.registerReceiver(null, ifilter)\n}\n```\n\n### Java\n\n```java\nIntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);\nIntent dockStatus = context.registerReceiver(null, ifilter);\n```\n\nYou can extract the current docking status from the\n`EXTRA_DOCK_STATE` extra:\n\n\n### Kotlin\n\n```kotlin\nval dockState: Int = dockStatus?.getIntExtra(EXTRA_DOCK_STATE, -1) ?: -1\nval isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED\n```\n\n### Java\n\n```java\nint dockState -1;\nif (dockStatus != null) {\n dockState = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1);\n}\nboolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;\n```\n\nDetermine the current dock type\n-------------------------------\n\nIf a device is docked, it can be docked in any of the following four\ndifferent dock types:\n\n- Car\n- Desk\n- Low-End (Analog) desk\n- High-End (Digital) desk\n\nThe latter two options are only introduced in Android API level 11, so it's\ngood practice to check for all three desk types when you are only interested in\nthe type of dock rather than it being digital or analog specifically: \n\n### Kotlin\n\n```kotlin\nval isCar: Boolean = dockState == EXTRA_DOCK_STATE_CAR\nval isDesk: Boolean = dockState == EXTRA_DOCK_STATE_DESK\n || dockState == EXTRA_DOCK_STATE_LE_DESK\n || dockState == EXTRA_DOCK_STATE_HE_DESK\n```\n\n### Java\n\n```java\nboolean isCar = dockState == EXTRA_DOCK_STATE_CAR;\nboolean isDesk = dockState == EXTRA_DOCK_STATE_DESK ||\n dockState == EXTRA_DOCK_STATE_LE_DESK ||\n dockState == EXTRA_DOCK_STATE_HE_DESK;\n```"]]