2016-04-10 16:10:09 -07:00
|
|
|
|
page.title=Preview API Overview
|
|
|
|
|
meta.tags="wear", "wear-preview"
|
|
|
|
|
page.tags="wear"
|
|
|
|
|
page.image=images/cards/card-n-apis_2x.png
|
|
|
|
|
@jd:body
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="qv-wrapper">
|
|
|
|
|
<div id="qv">
|
|
|
|
|
<h2>Key developer features</h2>
|
|
|
|
|
<ol>
|
|
|
|
|
<ul style="list-style-type:none;">
|
2016-05-17 23:23:47 -07:00
|
|
|
|
<li><a href="#ui">User Interface Improvements</a>
|
|
|
|
|
<ol>
|
|
|
|
|
<li><a href="#complications">Complications</a></li>
|
|
|
|
|
<li><a href="#drawers">Navigation and Action Drawers</a></li>
|
|
|
|
|
</ol>
|
|
|
|
|
</li>
|
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<li><a href="#notify">Notifications and Input</a>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
<ol>
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<li><a href="#expanded">Expanded Notification</a></li>
|
|
|
|
|
<li><a href="#messaging">Messaging Style Notification</a></li>
|
|
|
|
|
<li><a href="#smart-replies">Smart Reply</a></li>
|
|
|
|
|
<li><a href="#content-action">Notification Content Action</a>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
<li><a href="#remote-input">Remote Input</a></li>
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<li><a href="#bridging">Bridging Mode</a></li>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
<li><a href="#imf">Input Method Framework</a></li>
|
|
|
|
|
</ol>
|
|
|
|
|
</li>
|
2016-05-17 23:23:47 -07:00
|
|
|
|
|
2016-05-17 19:39:36 -07:00
|
|
|
|
<li><a href="#stand-alone">Standalone Devices</a>
|
|
|
|
|
<ol>
|
|
|
|
|
<li><a href="#wear-apk">Wear-Specific APKs</a></li>
|
|
|
|
|
<li><a href="#network">Network Access</a></li>
|
|
|
|
|
<li><a href="#auth">Authentication</a></li>
|
|
|
|
|
</ol>
|
|
|
|
|
</li>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
</ol>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
The Android Wear Preview API is still in active development, but you can try
|
|
|
|
|
it now as part of the Wear 2.0 Developer Preview. The sections below
|
|
|
|
|
highlight some of the new features for Wear developers.
|
|
|
|
|
</p>
|
|
|
|
|
|
2016-05-17 23:23:47 -07:00
|
|
|
|
|
|
|
|
|
<h2 id="ui">User Interface Improvements</h2>
|
|
|
|
|
|
|
|
|
|
<p>The preview introduces powerful additions to the user interface, opening up
|
|
|
|
|
exciting possibilities to developers.
|
|
|
|
|
A complication is any feature in a watch face that displays more than hours and
|
|
|
|
|
minutes. With the Complications API,
|
|
|
|
|
watch faces can display extra information and separate apps can expose complication
|
|
|
|
|
data.
|
|
|
|
|
The navigation and action drawers provide users with new ways to interact with apps.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="complications">Complications</h3>
|
|
|
|
|
<img src="{@docRoot}wear/preview/images/complications-main-image.png"
|
|
|
|
|
height="320" style="float:right;margin:10px 0 0 40px" />
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
A <a href=
|
|
|
|
|
"https://en.wikipedia.org/wiki/Complication_(horology)">complication</a> is a
|
|
|
|
|
feature of a watch face that displays more than hours and minutes, such as a
|
|
|
|
|
battery indicator or a step counter. The Complications API helps watch face
|
|
|
|
|
developers create these features visual features and data connections they
|
|
|
|
|
require.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Watch faces that use this API can display extra information without needing
|
|
|
|
|
code for getting the underlying data. Data providers can supply data to any
|
|
|
|
|
watch face using the API.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>For examples of how to use this feature,
|
|
|
|
|
see <a href="{@docRoot}wear/preview/features/complications.html">
|
|
|
|
|
Watch Face Complications</a>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="drawers">Navigation and Action drawers</h3>
|
|
|
|
|
|
|
|
|
|
<p>Wear 2.0 introduces two new widgets, navigation drawer and action drawer. These
|
|
|
|
|
widgets give your users new ways to interact with your app. The navigation drawer
|
|
|
|
|
appears at the top of the screen and allows users to navigate between app views.
|
|
|
|
|
The action drawer appears at the bottom of the screen and allows users to choose
|
|
|
|
|
from a list of actions associated with the current usage context. These drawers
|
|
|
|
|
are accessible to users when they edge swipe from the top or bottom of the
|
|
|
|
|
screen; they peek when users scroll in an opposite direction.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div class="cols">
|
|
|
|
|
<div class="col-2of6">
|
|
|
|
|
<img src="{@docRoot}wear/preview/images/nav_drawer.gif"
|
|
|
|
|
height="240" alt="" style="padding:.5em">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-2of6">
|
|
|
|
|
<img src="{@docRoot}wear/preview/images/action_drawer.gif"
|
|
|
|
|
height="240" alt="" style="padding:.5em;">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
To learn how to add these widgets to your app, see
|
|
|
|
|
<a href="{@docRoot}wear/preview/features/ui-nav-actions.html">
|
|
|
|
|
Wear Navigation and Actions</a>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<h2 id="notify">Notifications and Input</h2>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<p>In Wear 2.0, we’ve redesigned the key experiences on the watch to be even more
|
|
|
|
|
intuitive and provide users new ways to respond to messages. Some of the highlights
|
|
|
|
|
are below; for a complete list of changes, see
|
|
|
|
|
<a href="{@docRoot}wear/preview/features/notifications.html">Notification Changes in Wear 2.0</a>.
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-17 19:39:36 -07:00
|
|
|
|
|
2016-05-17 23:23:47 -07:00
|
|
|
|
<img src="{@docRoot}wear/preview/images/expanded_diagram.png" height="340"
|
|
|
|
|
style="float:left;margin:10px 20px 0 0" />
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<h3 id="expanded">Expanded notifications</h3>
|
2016-05-17 19:39:36 -07:00
|
|
|
|
|
2016-05-17 23:23:47 -07:00
|
|
|
|
<p>
|
|
|
|
|
When a user taps on a notification that is bridged from the phone to the
|
|
|
|
|
watch or that lacks a
|
|
|
|
|
<a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">
|
|
|
|
|
{@code contentIntent}</a>, the user will be taken to the expanded view of
|
|
|
|
|
that notification. When you <a href=
|
|
|
|
|
"{@docRoot}training/wearables/notifications/pages.html">specify additional
|
|
|
|
|
content pages</a> and actions for a notification, those are available to the
|
|
|
|
|
user within the expanded notification. Each expanded notification follows
|
2016-05-18 12:28:18 -07:00
|
|
|
|
<a href="https://google.com/design/spec-wear">Material Design for Android
|
2016-05-17 23:23:47 -07:00
|
|
|
|
Wear</a>, so the user gets an app-like experience.
|
2016-05-11 17:47:09 -07:00
|
|
|
|
</p>
|
2016-05-17 19:39:36 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
|
|
|
|
|
<h3 id="messaging">Messaging Style notification</h3>
|
|
|
|
|
<p> If you have a chat messaging app, your notifications should use
|
|
|
|
|
{@code Notification.MessagingStyle}, which is new in Android 6.0. Wear 2.0 uses
|
2016-05-17 19:39:36 -07:00
|
|
|
|
the chat messages included in a
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<a href="{docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a>
|
|
|
|
|
notification
|
|
|
|
|
(see {@code addMessage()}) to provide a rich chat app-like experience in the
|
|
|
|
|
expanded notification.
|
|
|
|
|
</p>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<h3 id="smart-replies">Smart Reply</h3>
|
2016-05-17 19:39:36 -07:00
|
|
|
|
|
|
|
|
|
<p>Android Wear 2.0 introduces support for Smart Reply in
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<a href="{@docRoot}wear/preview/features/notifications.html#messaging">{@code MessagingStyle}</a>
|
|
|
|
|
notifications. Smart Reply provides the user with contextually relevant,
|
2016-05-17 19:39:36 -07:00
|
|
|
|
touchable choices in the expanded notification and in
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>By enabling Smart Reply for your {@code MessagingStyle} notifications, you provide
|
|
|
|
|
users a fast (single tap), discreet (no speaking aloud), and reliable way to respond
|
|
|
|
|
to chat messages they receive.
|
|
|
|
|
</p>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
|
|
|
|
|
2016-05-17 23:23:47 -07:00
|
|
|
|
<img src="{@docRoot}wear/preview/images/remoteinput.png" height="350"
|
|
|
|
|
style="float:right;margin:10px 0 0 40px" />
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-17 19:39:36 -07:00
|
|
|
|
<h3 id="remote-input">Remote Input</h3>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-17 19:39:36 -07:00
|
|
|
|
<p>Wear 2.0 users can choose between various input options from
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<a href="{@docRoot}reference/android/app/RemoteInput.html">Remote Input</a>.
|
|
|
|
|
These options include:
|
|
|
|
|
</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Dictation</li>
|
|
|
|
|
<li>Emoji</li>
|
|
|
|
|
<li>Canned responses</li>
|
|
|
|
|
<li>Smart Reply</i>
|
|
|
|
|
<li>Default IME </i>
|
|
|
|
|
</ul>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<p>
|
|
|
|
|
For messaging notifications with Smart Reply, the system-generated Smart Reply
|
|
|
|
|
appears within <a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>
|
|
|
|
|
above the developer-provided list of canned responses.
|
|
|
|
|
You can also use the
|
|
|
|
|
<a href="{@docRoot}reference/android/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">setChoices()</a>
|
|
|
|
|
method in the {@code RemoteInput} API to enable users to select from a list
|
|
|
|
|
of canned responses.
|
|
|
|
|
</p>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<h3 id="bridging"> Bridging Mode </h3>
|
|
|
|
|
<p>By default, notifications are
|
|
|
|
|
<a href="{@docRoot}training/wearables/notifications/index.html">
|
2016-05-17 19:39:36 -07:00
|
|
|
|
bridged</a> (shared) from an app on a companion phone
|
2016-05-11 17:47:09 -07:00
|
|
|
|
to the watch. Since a phone app and a standalone watch app may be sources of the
|
|
|
|
|
same notifications, the Android Wear 2.0 Preview includes a Bridging mode feature.
|
|
|
|
|
Developers can begin planning to change the behavior of notifications with the
|
|
|
|
|
following:
|
|
|
|
|
</p>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<ul>
|
|
|
|
|
<li>Specifying in the standalone app's Android manifest file that notifications from
|
|
|
|
|
the corresponding phone app should not be bridged to the watch. </li>
|
|
|
|
|
<li>Setting a dismissal ID so notification dismissals (by users) are synced across
|
|
|
|
|
devices.</li>
|
|
|
|
|
</ul>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-11 17:47:09 -07:00
|
|
|
|
<p>For an example of how to use this feature, see <a href="{@docRoot}wear/preview/features/bridger.html">
|
|
|
|
|
Bridging Mode for Notifications</a>.</p>
|
|
|
|
|
|
|
|
|
|
<h3 id="imf">Input Method Framework</h3>
|
|
|
|
|
|
|
|
|
|
<p>Wear 2.0 extends the Android input method framework (IMF) to Android Wear.
|
|
|
|
|
This allows users to enter text on Wear using the system default IME or third party
|
|
|
|
|
IMEs. The Wear IME lets the user enter text via gesture typing as well as tapping
|
|
|
|
|
individual keys. The IMF APIs used for Wear devices are the same as other form
|
|
|
|
|
factors, though usage is slightly different due to limited screen real estate.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>Wear provides user settings on the watch that let the user:</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Enable multiple IMEs from the list of installed IMEs.</li>
|
|
|
|
|
<li>Set a single default IME from the list of enabled IMEs.</li>
|
|
|
|
|
<li>Change languages for various IMEs.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p>To learn how to create an IME for Wear, see <a href="{@docRoot}wear/preview/features/ime.html">
|
|
|
|
|
Input Method Framework</a>.
|
|
|
|
|
</p>
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
2016-05-17 19:39:36 -07:00
|
|
|
|
|
|
|
|
|
<h2 id="stand-alone">Standalone Devices</h2>
|
|
|
|
|
|
|
|
|
|
<p>Standalone watches will enable Android Wear apps to work independently of phone
|
|
|
|
|
apps. This means your app can continue to offer full functionality even if the
|
|
|
|
|
paired phone is far away or turned off. </p>
|
|
|
|
|
|
|
|
|
|
<h3 id="wear-apk">Wear-Specific APKs</h3>
|
|
|
|
|
|
|
|
|
|
<p>For delivery to a watch, an Android Wear app is currently embedded in its corresponding
|
|
|
|
|
phone app. This delivery method can result in an increased download size for users,
|
|
|
|
|
regardless of whether they have an Android Wear device.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>With standalone devices, the
|
|
|
|
|
<a href ="{@docRoot}google/play/publishing/multiple-apks.html">Multi-APK</a>
|
|
|
|
|
delivery method will be used. Developers will have the ability to release Android
|
|
|
|
|
Wear apps independently of the corresponding phone apps. Please stay tuned for
|
|
|
|
|
more information about this change.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h3 id="network">Network Access</h3>
|
|
|
|
|
|
|
|
|
|
<p>Since Android Wear apps will work independently of phone apps, Android Wear's
|
|
|
|
|
network access will no longer require the
|
|
|
|
|
<a href="{@docRoot}training/wearables/data-layer/index.html">
|
|
|
|
|
Wearable Data Layer API</a>. Android Wear apps will have the ability to make
|
|
|
|
|
their own network requests. Additionally, they will be able to directly use
|
|
|
|
|
Google Cloud Messaging.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>No APIs for network access or GCM are specific to Android Wear; refer to the
|
|
|
|
|
existing documentation about
|
|
|
|
|
<a href="{@docRoot}training/basics/network-ops/connecting.html">
|
|
|
|
|
Connecting to the Network</a> and
|
|
|
|
|
<a href="https://developers.google.com/cloud-messaging/">Cloud Messaging</a>.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>We recommend using the following libraries:</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="{@docRoot}reference/android/app/job/JobScheduler.html">
|
|
|
|
|
JobScheduler</a> for asynchronous jobs, including polling at regular intervals
|
|
|
|
|
</li>
|
|
|
|
|
<li>Multi-networking APIs if you need to connect to specific network types; see
|
|
|
|
|
the <a href="{@docRoot}about/versions/android-5.0.html#Wireless">
|
|
|
|
|
Multiple Network Connections</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p>You will still be able to use the
|
|
|
|
|
<a href="{@docRoot}training/wearables/data-layer/index.html">
|
|
|
|
|
Wearable Data Layer API</a> to communicate with a phone app.
|
|
|
|
|
However, use of this API to connect to a network will be discouraged.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="auth">Authentication</h3>
|
|
|
|
|
|
|
|
|
|
<p>Since Android Wear apps will work independently of phone apps, Android Wear's
|
|
|
|
|
authentication capabilities will be more powerful; apps will have new ways to
|
|
|
|
|
authenticate.</p>
|
|
|
|
|
|
|
|
|
|
<h4> Authentication tokens can be passed over the Wearable Data Layer </h4>
|
|
|
|
|
|
|
|
|
|
<p>For Android-paired watches (only), the phone will securely transfer authentication
|
|
|
|
|
data to a watch app via the
|
|
|
|
|
<a href="{@docRoot}training/wearables/data-layer/index.html">
|
|
|
|
|
Wearable Data Layer API</a>. The data can be transferred as
|
|
|
|
|
Messages or Data Items. </p>
|
|
|
|
|
|
|
|
|
|
<p>If your watch app needs to determine if your phone app is installed, you can
|
|
|
|
|
advertise a capability on the phone app and retrieve the capability on the watch.
|
|
|
|
|
For more information, see following sections of
|
|
|
|
|
<a href="{@docRoot}training/wearables/data-layer/messages.html">
|
|
|
|
|
Sending and Receiving Messages</a>:
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Advertise Capabilities</li>
|
|
|
|
|
<li>Retrieve the Nodes with the Required Capabilities</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<h4>Users can enter a username and password on a watch</h4>
|
|
|
|
|
|
|
|
|
|
<p>Google Keyboard will be standard on Android Wear, allowing for direct text entry.
|
|
|
|
|
This feature will work as expected with standard
|
|
|
|
|
<a href="{@docRoot}reference/android/widget/EditText.html">
|
|
|
|
|
EditText widgets</a>. For passwords, the {@code textPassword} attribute will be
|
|
|
|
|
used.
|
|
|
|
|
|
|
|
|
|
<h4>Utilizing Account Manager</h4>
|
|
|
|
|
Android Wear will include the <a href="{@docRoot}reference/android/accounts/AccountManager.html">
|
|
|
|
|
AccountManager</a>, which will be accessible for syncing and storing account
|
|
|
|
|
data, as it is on an Android phone.
|
|
|
|
|
</p>
|
|
|
|
|
|
2016-04-10 16:10:09 -07:00
|
|
|
|
|
|
|
|
|
|