Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1baf0f5c authored by sreevanis's avatar sreevanis Committed by android-build-merger
Browse files

Merge "API Overview page for Wear 2.0 preview." into mnc-io-docs am: 14981cbe am: fd249ffc

am: b71d84ee

* commit 'b71d84ee':
  Notification changes for Wear 2.0 and Release notes.

Change-Id: I9aa7abbb0cf64fe519f2e8a27400e89ccc5433ab
parents 8a79f6bd b71d84ee
Loading
Loading
Loading
Loading
+226 −2
Original line number Original line Diff line number Diff line
page.title=Expanded Notifications
page.title=Notification Changes in Android Wear 2.0
meta.tags="wear", "wear-preview", "notifications"
meta.tags="wear", "wear-preview", "notifications"
page.tags="wear"
page.tags="wear"
page.image=/wear/preview/images/expanded_diagram.png



@jd:body
@jd:body


<p>stub</p>
<div id="qv-wrapper">
 No newline at end of file
  <div id="qv">
    <!-- table of contents -->
    <h2>This document includes</h2>
    <ol>
      <li><a href="#visual">Visual Updates</a></li>
      <li><a href="#expanded">Expanded Notifications</a></li>
      <li><a href="#messaging">MessagingStyle</a></li>
    </ol>
  </div>
</div>

<p>Android Wear 2.0 updates the visual style and interaction paradigm of notifications
  as well as introduces expanded notifications, which provide substantial additional
  content and actions in an app-like experience.
</p>

<p>The visual and interaction changes make it much easier for users to read and
  interact with notifications from your application. Expanded notifications enable
  you to deliver Wear users an app-like experience even if you haven't built an
  Android Wear application.
</p>

<p class="note">
  <strong>Note:</strong> When developing for Wear 2.0, ensure that
  you have the latest version of the Android Wear app on your phone.
</p>

<h2 id="visual">Visual Updates</h2>
<p>Notifications receive important visual updates in Wear 2.0, with
<a href="http://www.google.com/design/wear">
material design</a> visual changes.
</p>

<p><img src="{@docRoot}wear/preview/images/comparison_diagram.png" /> </p>
<p><b>Figure 1.</b> Comparison of the same notification in Android Wear 1.x and 2.0.</p> 

<p>Some of the visual updates include:</p>
<ul>
<li><strong>Updated touch targets of a notification</strong>:
  If no <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>
  is set or if the notification is
  <a href="{@docRoot}design/wear/structure.html#Bridged">bridged</a>
  from a paired phone, then tapping the notification opens an <a href="{@docRoot}wear/preview/features/notifications.html#expanded">expanded notification</a>.
  If the notification is generated locally by a Wear app and if a
  <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>
  is set, tapping the notification fires the
  <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>.
  </li>

<li><strong>Dark background color</strong>:
  If you have notifications that are bridged to wearables, you need to be careful
   with regards to using color for the notifications. Since a bridged
  notification needs to support both light (Wear 1.x) and dark (Wear 2.0)
  backgrounds, it is unlikely that any colors will work well on both.
  <a href="{@docRoot}reference/android/app/Notification.WearableExtender.html#setDisplayIntent(android.app.PendingIntent)">{@code DisplayIntent}</a>
   notifications render with both light and dark backgrounds
  as well, and need to be checked for the same reason.
  We recommended that you don't set color for bridged notifications.

  When Wear apps post local notifications, you can work around this by checking
  <a href="{@docRoot}training/basics/supporting-devices/platforms.html#version-codes">the API level of the device</a> they're running on and using an appropriate color
  for Wear 1.x and a different color for Wear 2.0.
</li>

<li><strong>Updated horizontal swipe gesture on a notification</strong>:
  To dismiss a notification in Wear 2.0, the user swipes horizontally in either
  direction. So if your notification instructs the user to swipe left or right, 
  you must update the text of your notification.
</li>
</ul>
<h2 id="expanded">Expanded Notifications</h2>
<p>Android Wear 2.0 introduces <i>expanded notifications</i>, which provides
  substantial additional content and actions for each notification.
</p>
<p>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="http://www.google.com/design/wear">Material Design for Android Wear</a>,
  so the user gets an app-like experience.
</p>
<p><img src="{@docRoot}wear/preview/images/expanded_diagram.png" /> </p>
<p><b>Figure 2</b>. An expanded notification with content and actions.</p>
<p>If the first action in the expanded notification has a
<a href=" {@docRoot}reference/android/support/v4/app/RemoteInput.html">{@code RemoteInput}</a>
  (e.g., a Reply action), then the choices you set with <a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a>
  appear within the expanded notification below the first action.
</p>

<p>The user can view the expanded notification by tapping on a notification when
  either of the following is true:
</p>
<ul>
  <li>The notification is generated by an app on the paired phone and
    bridged to Wear.
  </li>
  <li>The notification does not have a 
  <a href="http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">{@code contentIntent}</a>.
  </li>
</ul>
<h3>Best practices for expanded notifications</h3>
<p>To decide when to use expanded notifications, follow these guidelines:</p>
<ul>
  <li>All notifications bridged from the paired phone to the Wear device will
  use expanded notifications.
  </li>
  <li>If a notification is generated by an app running locally on Wear 2.0,
    you should <a href="{@docRoot}training/notify-user/build-notification.html#action">
    make the touch target of your notification </a> launch
    <a href="{@docRoot}training/notify-user/build-notification.html#action"> an Activity</a>
    within your app by calling <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">{@code setContentIntent()}</a>.
    We recommend that you do not use expanded notifications for notifications generated
    by an app running locally on Wear 2.0.
  </li>
</ul>

<h3>Adding expanded notifications</h3>
<p>
 Expanded Notifications allow you to include additional content and actions
   for a notification. You choose the level of detail that your app's notifications
    will provide; however be judicious with the amount of detail you include in a 
    notification. 
</p>
<h4>Adding additional content</h4>
To show additional content in your expanded notification, see <a href="{@docRoot}training/wearables/notifications/pages.html">Adding Pages to a Notification</a>.</p>
<p>Additional content pages are stacked vertically in the expanded notification
 and appear in the order they were added.
  These additional content pages can optionally use a style such as <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.BigTextStyle.html">{@code BigTextStyle}</a> or <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.BigPictureStyle.html">{@code BigPictureStyle}</a>.
</p>
<h4>Primary action</h4>
The expanded notification will contain one primary action, which is the first
action in the notification unless a different action is specified using
<a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#setContentAction(int)">{@code setContentAction()}</a>.
</p>
<h4>Additional actions</h4>
<p>
  To specify additional actions, use
  <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#addAction(android.support.v4.app.NotificationCompat.Action)">{@code addAction()}</a>
   or <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#addActions(java.util.List<android.support.v4.app.NotificationCompat.Action>)">{@code addActions()}</a>.
    The action drawer of the expanded notification contains all available actions.
</p>
<h2 id="messaging">MessagingStyle</h2>

<p>If you have a chat messaging app, your notifications should use
<a href="{@docRoot}preview/features/notification-updates.html#style">{@code Notification.MessagingStyle}</a>,
 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 <a href="{@docRoot}preview/features/notification-updates.html#style">{@code addMessage()}</a>) to provide
  a rich chat app-like experience in the expanded notification.
</p>
<p class="note">Note: <a href="{@docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a> 
expanded notifications require that you have at least version 1.5.0.2861804 of the
  <a href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app">Android Wear application</a>
  on your paired Android phone. That version will be available within the next
  few weeks in the Play Store.
</p>
<h3 id="smart-reply">Smart Reply</h3>
<p>Wear 2.0 also introduces <i>Smart Reply</i> for <a href="{@docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a> notifications.
  Smart Reply provides the user with contextually relevant, touchable choices in
  the expanded notification and in {@code RemoteInput}. These augment the fixed
  list of choices that the developer provides in 
   <a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.html">{@code RemoteInput}</a>
    using the 
    <a href="{@docRoot}reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a> method.
</p>
<p>By enabling Smart Reply for your MessagingStyle notifications,
  you provide users with a fast (single tap), discreet (no speaking aloud), and
  reliable way to respond to chat messages.
</p>
<p><img src="{@docRoot}wear/preview/images/messaging_style.png" /></p>
<p><b>Figure 3</b>. The expanded notification includes contextually relevant
  Smart Reply responses below the primary action.
</p>

<p>Responses generated by Smart Reply are shown in addition to those set using the
  <a href="{@docRoot}reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a> method.
</p>
<p>To enable Smart Reply for your notification action, you need to do the
following:
</p>
<ol>
  <li>Use <a href="{@docRoot}preview/features/notification-updates.html#style">{@code Notification.MessagingStyle}</a>.
  </li>
  <li>Call the method 
  <a href="https://android-dot-devsite.googleplex.com/wear/preview/start.html#get_the_preview_reference_documentation">{@code setAllowGeneratedReplies()}</a>
   for the notification action.</li>
  <li>Ensure that the notification action has a
    <a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>
     (where the responses will reside).
  </li>
</ol>
<p>The following example shows how to create a MessagingStyle notification with
Smart Reply responses.</p>
<pre>
// Create an intent for the reply action
Intent replyIntent = new Intent(this, ReplyActivity.class);
PendingIntent replyPendingIntent =
 PendingIntent.getActivity(this, 0, replyIntent,
  PendingIntent.FLAG_UPDATE_CURRENT);

// Create the reply action and add the remote input
NotificationCompat.Action action =
 new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
  getString(R.string.label), replyPendingIntent)
 .addRemoteInput(remoteInput)

// 1) allow generated replies
.setAllowGeneratedReplies(true)
 .build();

Notification noti = new NotificationCompat.Builder()
 .setContentTitle(messages.length + " new messages with " + sender.toString())
 .setContentText(subject)
 .setSmallIcon(R.drawable.new_message)
 .setLargeIcon(aBitmap)
 // 2) set the style to MessagingStyle
 .setStyle(new NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)).addMessage(messages[0].getText(), messages[0].getTime(), messages[0].getSender())
  .addMessage(messages[1].getText(), messages[1].getTime(), messages[1].getSender()))


// 3) add an action with RemoteInput
.extend(new WearableExtender().addAction(action)).build();
</pre>
+90.7 KiB
Loading image diff...
+71.4 KiB
Loading image diff...
+104 KiB
Loading image diff...
+59 −0
Original line number Original line Diff line number Diff line
page.title=Support and Release Notes
meta.keywords="preview", "wear"
page.tags="preview", "developer preview"

@jd:body

  <p>If you experience problems when developing and testing with
  the Wear 2.0 Developer Preview, please file bugs at <a href=
  "https://developer.android.com/wear/preview/bug">https://developer.android.com/wear/preview/bug</a>
  .</p>

  <p>To discuss issues or ideas with other developers working with Android Wear, 
  join the <a href="https://plus.sandbox.google.com/communities/113381227473021565406">
  Wear Developer Google+ community</a>.

  <h2 id="dp">Developer Preview 1</h2>

  <div class="wrap">
    <div class="cols">
      <div class="col-6of12">
        <p><em>Date: May 2016<br />
        Builds: Wearable Support 2.0.0-alpha1, NVD36G <br />
        Emulator support: x86 & ARM (32-bit)<br/>
        </em></p>
      </div>
    </div>
  </div>

  <h3>General advisories</h3>

  <p>This Developer Preview release is for app developers only and is designed 
  for use in compatibility testing and early development only.</p>

  <h3>Wear 2.0 Notifications</h3>

  <h4>Notification groups</h4>

  <p>The current release of Android Wear 2.0 does not include support for notification
  groups, also known as <a href="{@docRoot}training/wearables/notifications/stacks.html">
  stacks</a> and bundles. You should continue to use notification groups because
   that support will be coming in a future version of Android Wear 2.0.</p>

   <h4>Smart Reply</h4>

   <p>The current version of Wear 2.0 does not generate any Smart Reply responses
    even if you call <a href="https://android-dot-devsite.googleplex.com/wear/preview/start.html#get_the_preview_reference_documentation">{@code setAllowGeneratedReplies()}</a>.
    This functionality will be added in a later version of Wear 2.0.
    </p>

  <h4>Fields that are deprecated in Wear 2.0</h4>

  <ul>
    <li>Notification.WearableExtender#setCustomSizePreset(int) no longer accepts
    SIZE_FULL_SCREEN as it has no meaning in Wear 2.0.</li>

    <li>Notification.WearableExtender#setContentIcon(int) is deprecated as it has no
    meaning in Wear 2.0.</li>
  </ul>