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.
Steps for trying out the sample:
This sample demonstrate best practices for using NotificationStyle Notifications for two scenarios:
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).
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).
This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.
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.
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
Template class meant to include functionality for your Reminder/Alarm App. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your Social App. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your email app. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your Messaging App. (This project's main focus is on Notification Styles.)
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.
Template class meant to include functionality for your Reminder/Alarm App. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your Social App. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your email app. (This project's main focus is on Notification Styles.)
Template class meant to include functionality for your Messaging App. (This project's main focus is on Notification Styles.)
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.
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.
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.
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.
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.
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.