コンテンツに移動

よくアクセスするページ

最近アクセスしたページ

navigation

装着状態とホルダータイプを特定および監視する

Android 端末は、さまざまな種類のホルダーに装着できます。車や家庭のホルダーがあり、デジタルのホルダーとアナログのホルダーもあります。 装着状態は通常は充電状態に密接にリンクしています。多くのホルダーは装着された端末に電力を供給しているためです。

携帯端末の装着状態がアップデート レートにどのように影響するかは、アプリによって異なります。スポーツ センター向けのアプリの場合、端末がデスクトップ ホルダーにあるときにはアップデート頻度を上げ、カーホルダーにあるときはアップデートを完全に無効にするよう指定できます。 逆に、バックグラウンド サービスによって交通情報が更新されている場合、車に装着しているときはアップデートを最大にすることを選択できます。

装着状態もスティッキー Intent としてブロードキャストされるため、デバイスが装着されているかどうか、装着されている場合はどの種類のホルダーかを照会できます。

現在の装着状態を特定する

装着状態の詳細は、ACTION_DOCK_EVENT アクションのスティッキー ブロードキャストにエクストラとして含まれています。これはスティッキーであるため、 BroadcastReceiver を登録する必要はありません。次のスニペットに示すように、registerReceiver() を呼び出し、null をブロードキャスト レシーバーとして渡すだけです。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);

現在の装着状態は EXTRA_DOCK_STATE エクストラから抽出できます。

int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

現在のホルダータイプを特定する

端末を装着する場合、次の 4 つのホルダータイプのいずれかで装着できます。

最後の 2 つのオプションは Android の API レベル 11 のみに導入されたため、ホルダーが具体的にデジタルかアナログかではなくホルダーのタイプのみがわかればいい場合は、3 つすべてを確認することをお勧めします。

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"/>

レシーバー実装内のホルダータイプと状態を抽出するには、前のステップで説明したのと同じ手法を使用します。

このサイトでは、ユーザーが選択したサイトの言語と表示設定を保存する目的で Cookie を使用しています。

Android デベロッパー向けの最新情報やヒントを入手して、Google Play での成功を手に入れましょう。

* 必須

送信しました

WeChat で Google Developers をフォローする

このサイトをで表示しますか?

ページの表示言語としてを選択しましたが、このサイトの言語はに設定されています。

言語設定を変更してこのサイトをで表示しますか?言語設定を変更する場合は、各ページの下にある言語メニューを使用してください。

このクラスには、API レベル 以上が必要です。

API レベル が選択されているため、このドキュメントは非表示になっています。左のナビゲーションの上にあるセレクタを使って、ドキュメントの API レベルを変更できます。

アプリに必要な API レベルを指定する方法について、詳しくは異なるプラットフォーム バージョンのサポートをご覧ください。

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)