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