| 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> |
| </ol> |
| </li> |
| |
| <li><a href="#notify">Notifications and Input</a> |
| <ol> |
| <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> |
| <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> |
| </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> |
| 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> |
| |
| |
| <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> |
| |
| |
| <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" /> |
| <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 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 |
| 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="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</i> |
| <li>Default IME </i> |
| </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. |
| Developers can begin planning to change the behavior of notifications with the |
| following: |
| </p> |
| |
| <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> |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| |