summaryrefslogtreecommitdiffstats
path: root/docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd')
-rw-r--r--docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd74
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd
new file mode 100644
index 0000000..9c0e054
--- /dev/null
+++ b/docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd
@@ -0,0 +1,74 @@
+page.title=ホルダーの装着状態とタイプの特定と監視
+parent.title=電池消費量の最適化
+parent.link=index.html
+
+trainingnavtop=true
+previous.title= 電池残量と充電状態の監視
+previous.link=battery-monitoring.html
+next.title= 接続状態の特定と監視
+next.link=connectivity-monitoring.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>このレッスンの内容</h2>
+<ol>
+ <li><a href="#CurrentDockState">オーディオ フォーカスをリクエストする</a></li>
+ <li><a href="#DockType">現在のホルダーのタイプを特定する</a></li>
+ <li><a href="#MonitorDockState">ホルダーの装着状態またはタイプの変化を監視する</a></li>
+</ol>
+
+
+<h2>関連項目</h2>
+<ul>
+ <li><a href="{@docRoot}guide/components/intents-filters.html">インテントとインテント フィルタ</a>
+</ul>
+
+</div>
+</div>
+
+<p>Android 搭載端末を装着できるホルダーの種類には、さまざまなものがあります。たとえば、車載用や家庭用のホルダーがあり、デジタルかアナログかという区別もあります。ホルダー装着状態は一般的に、充電状態と密接にリンクしています。多くのホルダーは、装着されている端末に電力を供給しているからです。</p>
+
+<p>端末のホルダー装着状態が更新の頻度にどのように影響するかは、アプリによって異なります。たとえば、スポーツ センター アプリなら、卓上ホルダー装着時には更新頻度を上げ、カー ホルダー装着時には更新を完全に停止するとよいでしょう。逆に、カー ホルダー装着時に更新頻度を最大にするケースとしては、バックグラウンド サービスによって道路交通状況を更新する場合が考えられます。</p>
+
+<p>ホルダー装着状態も sticky {@link android.content.Intent} としてブロードキャストされるので、端末がホルダーに装着されているかどうかと、装着されている場合のホルダーのタイプを問い合わせることができます。</p>
+
+
+<h2 id="CurrentDockState">現在のホルダー装着状態を特定する</h2>
+
+<p>ホルダー装着状態の詳細は、{@link android.content.Intent#ACTION_DOCK_EVENT} アクションの sticky ブロードキャストにエクストラとして含まれています。これは sticky であるため、{@link android.content.BroadcastReceiver} を登録する必要はありません。次のコード例に示すように、{@link android.content.Context#registerReceiver registerReceiver()} を呼び出し、{@code null} をブロードキャスト レシーバとして渡します。</p>
+
+<pre>IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
+Intent dockStatus = context.registerReceiver(null, ifilter);</pre>
+
+<p>現在のホルダー装着状態は、次のように {@code EXTRA_DOCK_STATE} エクストラから抽出します。<p>
+
+<pre>int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);
+boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;</pre>
+
+
+<h2 id="DockType">現在のホルダーのタイプを特定する</h2>
+
+<p>端末がホルダーに装着されている場合のホルダーのタイプは、次の 4 つのいずれかです。
+<ul><li>カー</li>
+<li>卓上</li>
+<li>ローエンド(アナログ)卓上</li>
+<li>ハイエンド(デジタル)卓上</li></ul></p>
+
+<p>最後の 2 つは、Android API レベル 11 で追加されたものです。したがって、ホルダーのタイプだけがわかればよく、デジタルとアナログの区別は問わないという場合は、次のように 3 つすべてについて調べるとよいでしょう。</p>
+
+<pre>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;</pre>
+
+
+<h2 id="MonitorDockState">ホルダーの装着状態またはタイプの変化を監視する</h2>
+
+<p>端末がホルダーに装着されたり、装着が解除されたりするたびに、{@link android.content.Intent#ACTION_DOCK_EVENT} アクションがブロードキャストされます。端末のホルダー装着状態の変化を監視するには、次のコード例に示すように、アプリのマニフェスト内でブロードキャスト レシーバを登録します。</p>
+
+<pre>&lt;action android:name="android.intent.action.ACTION_DOCK_EVENT"/></pre>
+
+<p>レシーバ実装の中でホルダーのタイプと状態を抽出する方法は、前のステップで使用したものと同じです。</p>