1 2Android SynchronizedNotifications Sample 3=================================== 4 5A basic sample showing how to use simple or synchronized notifications. 6This allows users to dismiss events from either their phone or wearable device simultaneously. 7 8Introduction 9------------ 10 11The [DataAPI][1] exposes an API for components to read or write data items and assets between 12the handhelds and wearables. A [DataItem][2] is synchronized across all devices in an Android Wear network. 13It is possible to set data items while not connected to any nodes. Those data items will be synchronized 14when the nodes eventually come online. 15 16This example presents three buttons that would trigger three different combinations of 17notifications on the handset and the watch: 18 191. The first button builds a simple local-only notification on the handset. 202. The second one creates a wearable-only notification by putting a data item in the shared data 21store and having a [com.google.android.gms.wearable.WearableListenerService][3] listen for 22that on the wearable. 233. The third one creates a local notification and a wearable notification by combining the above 24two. It, however, demonstrates how one can set things up so that the dismissal of one 25notification results in the dismissal of the other one. 26 27In the #2 and #3 items, the following code is used to synchronize the data between the handheld 28and the wearable devices using DataAPI. 29 30```java 31PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(path); 32putDataMapRequest.getDataMap().putString(Constants.KEY_CONTENT, content); 33putDataMapRequest.getDataMap().putString(Constants.KEY_TITLE, title); 34PutDataRequest request = putDataMapRequest.asPutDataRequest(); 35Wearable.DataApi.putDataItem(mGoogleApiClient, request) 36 .setResultCallback(new ResultCallback<DataApi.DataItemResult>() { 37 @Override 38 public void onResult(DataApi.DataItemResult dataItemResult) { 39 if (!dataItemResult.getStatus().isSuccess()) { 40 Log.e(TAG, "buildWatchOnlyNotification(): Failed to set the data, " 41 + "status: " + dataItemResult.getStatus().getStatusCode()); 42 } 43 } 44 }); 45``` 46 47[1]: http://developer.android.com/reference/com/google/android/gms/wearable/DataApi.html#putDataItem(com.google.android.gms.common.api.GoogleApiClient%2C%20com.google.android.gms.wearable.PutDataRequest) 48[2]: http://developer.android.com/reference/com/google/android/gms/wearable/DataItem.html 49[3]: https://developer.android.com/reference/com/google/android/gms/wearable/WearableListenerService.html 50 51Pre-requisites 52-------------- 53 54- Android SDK 27 55- Android Build Tools v27.0.2 56- Android Support Repository 57 58Screenshots 59------------- 60 61<img src="screenshots/different_notifications_phone.png" height="400" alt="Screenshot"/> <img src="screenshots/different_notifications_wearable.png" height="400" alt="Screenshot"/> <img src="screenshots/notification_options.png" height="400" alt="Screenshot"/> <img src="screenshots/watch_only_notification.png" height="400" alt="Screenshot"/> 62 63Getting Started 64--------------- 65 66This sample uses the Gradle build system. To build this project, use the 67"gradlew build" command or use "Import Project" in Android Studio. 68 69Support 70------- 71 72- Google+ Community: https://plus.google.com/communities/105153134372062985968 73- Stack Overflow: http://stackoverflow.com/questions/tagged/android 74 75If you've found an error in this sample, please file an issue: 76https://github.com/googlesamples/android-SynchronizedNotifications 77 78Patches are encouraged, and may be submitted by forking this project and 79submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. 80 81License 82------- 83 84Copyright 2017 The Android Open Source Project, Inc. 85 86Licensed to the Apache Software Foundation (ASF) under one or more contributor 87license agreements. See the NOTICE file distributed with this work for 88additional information regarding copyright ownership. The ASF licenses this 89file to you under the Apache License, Version 2.0 (the "License"); you may not 90use this file except in compliance with the License. You may obtain a copy of 91the License at 92 93http://www.apache.org/licenses/LICENSE-2.0 94 95Unless required by applicable law or agreed to in writing, software 96distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 97WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 98License for the specific language governing permissions and limitations under 99the License. 100