Courtesy: GitHub

Android WearNotifications Sample

Sample demonstrates best practices for using NotificationStyle Notifications (Inbox, BigPicture, BigText, and Messaging) for both Mobile apps and native/local Android Wear apps. It also covers Notifications on Wear 1.+ and Wear 2.0.

Introduction

Steps for trying out the sample:

  • Compile and install the mobile app onto your mobile device or emulator (for mobile scenario).
  • Compile and install the wearable app onto your Wear device or emulator (for Wear scenario).

This sample demonstrate best practices for using NotificationStyle Notifications for two scenarios:

  1. Launching Notifications from a Mobile app WITHOUT a native Android Wear app. Notifications appear both on mobile and Wear (bridged to appear like a local/native Wear app).

  2. Launching Notifications from a Native/Local Android Wear app. Notifications only appear on Wear device.

The Mobile and Wear apps demonstrate BigTextStyle, BigPictureStyle, InboxStyle, and MessagingStyle Notifications.

Although there are two apps (Mobile and Wear) running, each should be looked at as a separate experience. That is, neither app uses nor relies on the other.

They are packaged together simply to show both scenarios in one easy sample.

Both apps also cover the Notifications being displayed on Wear 1.+ and/or Wear 2.0 and using some of the new features of Wear 2.0 (inline actions).

Pre-requisites

  • Android SDK 26
  • Android Build Tools v26.0.1
  • Android Support Repository

Screenshots

Screenshot Screenshot Screenshot Screenshot

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

Support

If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-WearNotifications

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.

License

Copyright 2017 The Android Open Source Project, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

compile 'com.android.support:appcompat-v7:27.0.0'

compile 'com.android.support:cardview-v7:27.0.0'

compile 'com.android.support:design:27.0.0'

compile 'com.google.android.gms:play-services-wearable:11.4.2'

compile 'com.android.support:support-v13:27.0.0'

compile project(':Shared')

compileSdkVersion 26

minSdkVersion 18

targetSdkVersion 26

versionCode 1

versionName "1.0"

compile 'com.android.support:support-v4:27.0.0'

compileSdkVersion 26

minSdkVersion 18

targetSdkVersion 26

compile 'com.android.support:appcompat-v7:27.0.0'

compile 'com.android.support:wear:27.0.0'

compile 'com.android.support:design:27.0.0'

compile 'com.google.android.gms:play-services-wearable:11.4.2'

compile 'com.android.support:support-v13:27.0.0'

compile 'com.google.android.support:wearable:2.1.0'

compile project(':Shared')

compileSdkVersion 26

versionCode 1

versionName "1.0"

minSdkVersion 23

targetSdkVersion 26

package com.example.android.wearable.wear.wearnotifications

versionCode 1

versionName 1.0

package com.example.android.wearable.wear.wearnotifications.common

package com.example.android.wearable.wear.wearnotifications

versionCode 1

versionName 1.0

uses-permission

  • android.permission.WAKE_LOCK

StandaloneMainActivity

BigTextMainActivity

Template class meant to include functionality for your Reminder/Alarm App. (This project's main focus is on Notification Styles.)

BigPictureSocialMainActivity

Template class meant to include functionality for your Social App. (This project's main focus is on Notification Styles.)

InboxMainActivity

Template class meant to include functionality for your email app. (This project's main focus is on Notification Styles.)

MessagingMainActivity

Template class meant to include functionality for your Messaging App. (This project's main focus is on Notification Styles.)

StandaloneMainActivity

BigTextMainActivity

BigPictureSocialMainActivity

InboxMainActivity

MessagingMainActivity

StandaloneMainActivity

Demonstrates best practice for {@link NotificationCompat} Notifications created by local standalone Android Wear apps. All {@link NotificationCompat} examples use {@link NotificationCompat.Style}.

Ambient mode controller attached to this display. Used by Activity to see if it is in ambient mode.

Helper method for the SnackBar action, i.e., if the user has this application's notifications disabled, this opens up the dialog to turn them back on after the user requests a Notification launch. * IMPORTANT NOTE: You should not do this action unless the user takes an action to see your Notifications like this sample demonstrates. Spamming users to re-enable your notifications is a bad idea.

Prepares the UI for ambient mode.

Restores the UI to active (non-ambient) mode.

BigTextMainActivity

Template class meant to include functionality for your Reminder/Alarm App. (This project's main focus is on Notification Styles.)

BigPictureSocialMainActivity

Template class meant to include functionality for your Social App. (This project's main focus is on Notification Styles.)

InboxMainActivity

Template class meant to include functionality for your email app. (This project's main focus is on Notification Styles.)

MessagingMainActivity

Template class meant to include functionality for your Messaging App. (This project's main focus is on Notification Styles.)

BigTextIntentService

Asynchronously handles snooze and dismiss actions for reminder app (and active Notification). Notification for for reminder app uses BigTextStyle.

Handles action Dismiss in the provided background thread.

Handles action Snooze in the provided background thread.

MessagingIntentService

Asynchronously handles updating messaging app posts (and active Notification) with replies from user in a conversation. Notification for social app use MessagingStyle.

Handles action for replying to messages from the notification.

BigPictureSocialIntentService

Asynchronously handles updating social app posts (and active Notification) with comments from user. Notification for social app use BigPictureStyle.

Handles action for adding a comment from the notification.

BigTextIntentService

MessagingIntentService

BigPictureSocialIntentService

BigTextIntentService

Asynchronously handles snooze and dismiss actions for reminder app (and active Notification). Notification for for reminder app uses BigTextStyle.

Handles action Dismiss in the provided background thread.

Handles action Snooze in the provided background thread.

MessagingIntentService

Asynchronously handles updating messaging app posts (and active Notification) with replies from user in a conversation. Notification for social app use MessagingStyle.

Handles action for replying to messages from the notification.

BigPictureSocialIntentService

Asynchronously handles updating social app posts (and active Notification) with comments from user. Notification for social app use BigPictureStyle.

Handles action for adding a comment from the notification.