488 lines
16 KiB
Plaintext
488 lines
16 KiB
Plaintext
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;">
|
||
<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>
|
||
<li><a href="#wrv">Curved Layout</a></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<li><a href="#notify">Notifications and Input</a>
|
||
<ol>
|
||
<li><a href="#expanded">Expanded Notifications</a></li>
|
||
<li><a href="#messaging">Messaging Style Notifications</a></li>
|
||
<li><a href="#inline-action">Inline Action</a></li>
|
||
<li><a href="#smart-replies">Smart Reply</a></li>
|
||
<li><a href="#remote-input">Remote Input</a></li>
|
||
<li><a href="#bridging">Bridging Mode</a></li>
|
||
<li><a href="#imf">Input Method Framework</a></li>
|
||
<li><a href="#wrist-gestures">Wrist Gestures</a></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<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>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
|
||
<p>
|
||
Wear 2.0 is still in active development, but you can try it as part of
|
||
the Wear 2.0 Developer Preview. The sections below highlight some of the
|
||
new features for developers.
|
||
</p>
|
||
|
||
<h2 id="ui">
|
||
User Interface Improvements
|
||
</h2>
|
||
|
||
<p>
|
||
The preview introduces powerful additions to the user interface, opening
|
||
up exciting possibilities to developers.
|
||
</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 thus
|
||
helps watch face developers create visual features and the 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 information about this API, 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>
|
||
|
||
<h3 id="wrv">
|
||
Curved Layout
|
||
</h3>
|
||
|
||
<p>
|
||
Wear 2.0 introduces the <code>WearableRecyclerView</code> class for
|
||
displaying and manipulating a vertical list of items,
|
||
optimized for round displays.
|
||
</p>
|
||
|
||
<p>
|
||
The key features include the following:
|
||
</p>
|
||
|
||
<ul>
|
||
<li>A curved layout on round devices
|
||
</li>
|
||
|
||
<li>A circular scrolling gesture, which can be toggled on and off
|
||
</li>
|
||
</ul>
|
||
|
||
<p>
|
||
To learn how to create a curved layout optimized for round devices, see
|
||
<a href=
|
||
"https://developer.android.com/wear/preview/features/wearable-recycler-view.html">
|
||
Curved Layout</a>.
|
||
</p>
|
||
|
||
<h2 id="notify">
|
||
Notifications and Input
|
||
</h2>
|
||
|
||
<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>. <img src=
|
||
"{@docRoot}wear/preview/images/expanded_diagram.png" height="340" style=
|
||
"float:left;margin:10px 20px 0 0">
|
||
</p>
|
||
|
||
<h3 id="expanded">
|
||
Expanded Notifications
|
||
</h3>
|
||
|
||
<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 <a href=
|
||
"https://google.com/design/spec-wear">Material Design for Android
|
||
Wear</a>, so the user gets an app-like experience.
|
||
</p>
|
||
|
||
<h3 id="messaging">
|
||
Messaging Style Notifications
|
||
</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
|
||
the chat messages included in a <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>
|
||
|
||
<h3 id="inline-action">
|
||
Inline Action
|
||
</h3>
|
||
|
||
<p>
|
||
Wear 2.0 enables you to add an inline action within the notification
|
||
stream so that users can quickly take an action on a notification.
|
||
Examples of good use cases for an inline action within a notification stream
|
||
include replying to a text message, stopping a fitness activity, or
|
||
archiving an email message.
|
||
</p>
|
||
|
||
<p>
|
||
To learn how to add an inline action to your notification stream, see
|
||
<a href=
|
||
"https://developer.android.com/wear/preview/features/notifications.html#inline">
|
||
Inline Action</a>.
|
||
</p>
|
||
|
||
<h3 id="smart-replies">
|
||
Smart Reply
|
||
</h3>
|
||
|
||
<p>
|
||
Android Wear 2.0 introduces support for Smart Reply in <a href=
|
||
"{@docRoot}wear/preview/features/notifications.html#messaging">{@code
|
||
MessagingStyle}</a> notifications. Smart Reply provides the user with
|
||
contextually relevant, touchable choices in the expanded notification and
|
||
in <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>
|
||
|
||
<img src="{@docRoot}wear/preview/images/remoteinput.png" height="350"
|
||
style="float:right;margin:10px 0 0 40px">
|
||
|
||
<h3 id="remote-input">
|
||
Remote Input
|
||
</h3>
|
||
|
||
<p>
|
||
Wear 2.0 users can choose between various input options from <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
|
||
</li>
|
||
|
||
<li>Default IME
|
||
</li>
|
||
</ul>
|
||
|
||
<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>
|
||
|
||
<h3 id="bridging">
|
||
Bridging Mode
|
||
</h3>
|
||
|
||
<p>
|
||
By default, notifications are <a href=
|
||
"{@docRoot}training/wearables/notifications/index.html">bridged</a>
|
||
(shared) from an app on a companion phone 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.
|
||
</p>
|
||
|
||
<p>
|
||
For information about 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>
|
||
|
||
<h3 id="wrist-gestures">
|
||
Wrist Gestures
|
||
</h3>
|
||
|
||
<p>
|
||
Wrist gestures can enable quick, one-handed interactions with your app
|
||
when use of a touch screen is inconvenient. The following <a href=
|
||
"https://support.google.com/androidwear/answer/6312406">wrist
|
||
gestures</a> are available for use by apps:
|
||
</p>
|
||
|
||
<ul>
|
||
<li>Flick wrist out
|
||
</li>
|
||
|
||
<li>Flick wrist in
|
||
</li>
|
||
</ul>
|
||
|
||
<p>
|
||
For more information, see <a href=
|
||
"{@docRoot}wear/preview/features/gestures.html">Wrist Gestures</a>.
|
||
</p>
|
||
|
||
<h2 id="stand-alone">
|
||
Standalone Devices
|
||
</h2>
|
||
|
||
<p>
|
||
Standalone watches 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>
|
||
For information about planning and building your standalone app
|
||
for Wear 2.0, see <a href=
|
||
"https://developer.android.com/wear/preview/features/standalone-apps.html">
|
||
Standalone Apps</a>.
|
||
</p>
|
||
|
||
<p>
|
||
For information about distributing your app, see <a href=
|
||
"https://developer.android.com/wear/preview/features/app-distribution.html">
|
||
App Distribution</a>.
|
||
</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. For more information, see
|
||
<a href=
|
||
"https://developer.android.com/wear/preview/features/standalone-apps.html#network_access">
|
||
Network Access and Cloud Messaging</a>.
|
||
</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, to connect to specific network
|
||
types; see <a href=
|
||
"{@docRoot}about/versions/android-5.0.html#Wireless">Multiple Network
|
||
Connections</a>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>
|
||
The <a href=
|
||
"{@docRoot}training/wearables/data-layer/index.html">Wearable Data Layer
|
||
API</a> is available 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>
|
||
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.
|
||
</p>
|
||
|
||
<h4>
|
||
Utilizing Account Manager
|
||
</h4>
|
||
|
||
<p>
|
||
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>
|
||
|
||
<h4>
|
||
Authentication tokens can be passed over the Wearable Data Layer
|
||
</h4>
|
||
|
||
<p>
|
||
For Android-paired watches (only), a phone securely transfers
|
||
authentication credentials to a watch app via the <a href=
|
||
"{@docRoot}training/wearables/data-layer/index.html">Wearable Data Layer
|
||
API</a>. The credentials 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 the following sections of
|
||
<a href="{@docRoot}training/wearables/data-layer/messages.html">Sending
|
||
and Receiving Messages</a>:
|
||
</p>
|
||
|
||
<ul>
|
||
<li>Advertise Capabilities
|
||
</li>
|
||
|
||
<li>Retrieve the Nodes with the Required Capabilities
|
||
</li>
|
||
</ul>
|