blob: a6e4781689b4e4cf1c8dfb48375749f4f71d6aa7 [file] [log] [blame]
page.title=Headset Expected Behavior
@jd:body
<!--
Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<div id="qv-wrapper">
<div id="qv">
<h2>In this document</h2>
<ol id="auto-toc">
</ol>
</div>
</div>
<p>
This article details the functional requirements for
<a href="plug-headset-spec.html">3.5 mm plug</a> and
<a href="usb-headset-spec.html">USB</a> headsets.</p>
<p>
When verifying the behaviors of the device and the audio headset, note that the
requirements:</p>
<ul>
<li>only apply when no other audio accessories (e.g. Bluetooth) are
available</li>
<li>cover the default behavior for devices and do not apply to applications
that use audio routing APIs to select which audio peripheral to use</li>
</ul>
<h2 id=media>Media</h2>
<p>If a user connects a headset to the device while playing media, the audio
output (sound) should be heard only via the headset.</p>
<p>For example, while playing media with the <a
href="https://github.com/googlesamples/android-UniversalMusicPlayer">open
source</a> <a
href="https://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html">Universal
Music Player</a>, pressing the play/pause button should pause playback.
Pressing the same button when media is paused should resume playback.</p>
<p>If the headset has volume control buttons: </p>
<ul>
<li> Pressing the volume-up button should increase the volume incrementally each
time the button is pressed until maximum volume is reached. If the volume-up
button is pressed and held, the volume should gradually increase to maximum
volume setting.
<li> Pressing the volume-down button should decrease the volume incrementally each
time the button is pressed until entirely muted. If the volume-down button is
pressed and held, the volume should gradually decrease to silent.
<li> Pressing the volume-up button when in a muted state should increase the volume
one notch at a time starting from silent.
</ul>
<p><strong>Recommended for Apps</strong>: On disconnecting the headset, sound output should stop and playback should
pause. On reconnecting, playback should not start again unless the user presses
the play button. Upon pressing play, sound output should again be limited to
the headset.</p>
<h3 id=one_button>One button</h3>
<img src="images/media_one.png" alt="Button functions for one-button headsets handling a media stream.">
</span>
<p class="img-caption"><strong>Figure 1.</strong> Button functions for one-button headsets handling a media stream.</p>
<h3 id=two_buttons>Two buttons</h3>
<img src="images/media_two.png" alt="Button functions for two-button headsets handling a media stream.">
<p class="img-caption"><strong>Figure 2.</strong> Button functions for two-button headsets handling a media stream.</p>
<h3 id=three_buttons>Three buttons</h3>
<img src="images/media_three.png" alt="Button functions for three-button headsets handling a media stream.">
<p class="img-caption"><strong>Figure 3.</strong> Button functions for three-button headsets handling a media stream.</p>
<h3 id=four_buttons>Four buttons</h3>
<img src="images/media_four.png" alt="Button functions for four-button headsets handling a media stream.">
<p class="img-caption"><strong>Figure 4.</strong> Button functions for four-button headsets handling a media stream.</p>
<h2 id=telephony>Telephony</h2>
<p>If a user connects a headset to the device while a call is in progress, the
conversation should continue on the headset. The call should not get
disconnected, and the microphone should not be muted. If present, volume
buttons should behave identically to media playback.</p>
<p class="note"><strong>Note</strong>: The actions to mute and hang up a phone
call may differ across Android devices. This documents the most common behavior;
but for some devices, a short press on the headset mutes the call, and a long
press hangs up.</p>
<h3 id=one_button>One button</h3>
<img src="images/telephony_one.png" alt="Button functions for one-button headsets handling a phone call.">
<p class="img-caption"><strong>Figure 5.</strong> Button functions for one-button headsets handling a phone call. </p>
<h3 id=two_buttons>Two buttons</h3>
<img src="images/telephony_two.png" alt="Button functions for two-button headsets handling a phone call.">
<p class="img-caption"><strong>Figure 6.</strong> Button functions for two-button headsets handling a phone call. </p>
<h3 id=three_buttons>Three buttons</h3>
<img src="images/telephony_three.png" alt="Button functions for three-button headsets handling a phone call.">
<p class="img-caption"><strong>Figure 7.</strong> Button functions for three-button headsets handling a phone call. </p>
<h3 id=four_buttons>Four buttons</h3>
<img src="images/telephony_four.png" alt="Button functions for four-button headsets handling a phone call.">
<p class="img-caption"><strong>Figure 8.</strong> Button functions for four-button headsets handling a phone call. </p>
<h2 id=voice_assistance>Voice assistance</h2>
<p>The voice assistance button is a new inline control standard for consistently
and conveniently accessing a voice search feature from any approved wearable
audio device. By pressing the button defined here, users will hear the two-tone
signature <a href="http://en.wikipedia.org/wiki/Earcon">earcon</a> indicating that the device is listening and ready to receive the query.</p>
<p>Whether embedded into a multi-function button or highlighted as a single
button, it should always be quickly accessible, ergonomically correct, and
placed intuitively as described in the following section.</p>
<h2 id=buttons_and_function_mapping>Buttons and function mapping recommendations</h2>
<p>The following diagrams depict the acceptable configuration of the Android voice
assistance button.</p>
<h3 id=options>Options</h3>
<img src="images/button_configuration.png" alt="Button configuration options.">
<p class="img-caption"><strong>Figure 9.</strong> Button configuration options. </p>
<p>Buttons should always be front facing and spaced out so they can be easily
located by touch only.</p>
<h3 id=spacing>Spacing</h3>
<p>Buttons must be more than 5 mm and must have at least 5 mm distance between
buttons. For four-button headsets, there must be at least 9 mm of space between
button D and the cluster of other buttons. </p>
<img src="images/button_spacing.png" alt="Button spacing requirements">
<p class="img-caption"><strong>Figure 10.</strong> Button spacing requirements.</p>
<h3 id=icon>Icon</h3>
<p>In the following diagram, A is unlabeled or labeled with a dot. B is labeled
with a + or an arrow pointing up. C is labeled with a - or an arrow pointing
down. D is labeled with the selected button icon.</p>
<img src="images/button_icons.png" alt="Button icon requirements">
<p class="img-caption"><strong>Figure 11.</strong> Button icon requirements. </p>
<h3 id=sizing>Sizing</h3>
<p>The following diagram shows the ratio of button icon to the space around it.</p>
<img src="images/icon_sizing.png" alt="Voice search button icon sizing requirements">
<p class="img-caption"><strong>Figure 12.</strong> Voice search button icon sizing requirements. </p>
<h3 id=microphone_port>Microphone port</h3>
<p>The microphone should never be obstructed when operating the buttons. Place the
port away from finger interface area.</p>
<img src="images/microphone.png" alt="Microphone placement">
<p class="img-caption"><strong>Figure 13.</strong> Microphone placement. </p>