You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.8 KiB
120 lines
4.8 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Copyright 2013 The Android Open Source Project
|
|
|
|
Licensed 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.
|
|
-->
|
|
|
|
|
|
|
|
<sample>
|
|
<name>SynchronizedNotifications</name>
|
|
<group>Wearable</group>
|
|
<package>com.example.android.wearable.synchronizednotifications</package>
|
|
|
|
<minSdk>18</minSdk>
|
|
<targetSdkVersion>25</targetSdkVersion>
|
|
<targetSdkVersionWear>25</targetSdkVersionWear>
|
|
|
|
<wearable>
|
|
<has_handheld_app>true</has_handheld_app>
|
|
</wearable>
|
|
|
|
<strings>
|
|
<intro>
|
|
<![CDATA[
|
|
This sample creates simple or synchronized notifications on a
|
|
device and an Android Wear watch.
|
|
]]>
|
|
</intro>
|
|
</strings>
|
|
|
|
<template src="base"/>
|
|
<template src="SimpleView"/>
|
|
<template src="WearPlusShared"/>
|
|
<common src="logger"/>
|
|
<common src="activities"/>
|
|
|
|
<metadata>
|
|
<status>DEPRECATED</status>
|
|
<categories>Wearable</categories>
|
|
<technologies>Android</technologies>
|
|
<languages>Java</languages>
|
|
<solutions>Mobile</solutions>
|
|
<level>INTERMEDIATE</level>
|
|
<icon>screenshots/web-icon.png</icon>
|
|
<screenshots>
|
|
<img>screenshots/different_notifications_phone.png</img>
|
|
<img>screenshots/different_notifications_wearable.png</img>
|
|
<img>screenshots/notification_options.png</img>
|
|
<img>screenshots/watch_only_notification.png</img>
|
|
</screenshots>
|
|
<api_refs>
|
|
<android>com.google.android.gms.wearable.DataApi</android>
|
|
<android>com.google.android.gms.wearable.Wearable</android>
|
|
<android>com.google.android.gms.wearable.WearableListenerService</android>
|
|
</api_refs>
|
|
|
|
<description>
|
|
<![CDATA[
|
|
A basic sample showing how to use simple or synchronized notifications.
|
|
This allows users to dismiss events from either their phone or wearable device simultaneously.
|
|
]]>
|
|
</description>
|
|
|
|
<intro>
|
|
<![CDATA[
|
|
The [DataAPI][1] exposes an API for components to read or write data items and assets between
|
|
the handhelds and wearables. A [DataItem][2] is synchronized across all devices in an Android Wear network.
|
|
It is possible to set data items while not connected to any nodes. Those data items will be synchronized
|
|
when the nodes eventually come online.
|
|
|
|
This example presents three buttons that would trigger three different combinations of
|
|
notifications on the handset and the watch:
|
|
|
|
1. The first button builds a simple local-only notification on the handset.
|
|
2. The second one creates a wearable-only notification by putting a data item in the shared data
|
|
store and having a [com.google.android.gms.wearable.WearableListenerService][3] listen for
|
|
that on the wearable.
|
|
3. The third one creates a local notification and a wearable notification by combining the above
|
|
two. It, however, demonstrates how one can set things up so that the dismissal of one
|
|
notification results in the dismissal of the other one.
|
|
|
|
In the #2 and #3 items, the following code is used to synchronize the data between the handheld
|
|
and the wearable devices using DataAPI.
|
|
|
|
```java
|
|
PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(path);
|
|
putDataMapRequest.getDataMap().putString(Constants.KEY_CONTENT, content);
|
|
putDataMapRequest.getDataMap().putString(Constants.KEY_TITLE, title);
|
|
PutDataRequest request = putDataMapRequest.asPutDataRequest();
|
|
Wearable.DataApi.putDataItem(mGoogleApiClient, request)
|
|
.setResultCallback(new ResultCallback<DataApi.DataItemResult>() {
|
|
@Override
|
|
public void onResult(DataApi.DataItemResult dataItemResult) {
|
|
if (!dataItemResult.getStatus().isSuccess()) {
|
|
Log.e(TAG, "buildWatchOnlyNotification(): Failed to set the data, "
|
|
+ "status: " + dataItemResult.getStatus().getStatusCode());
|
|
}
|
|
}
|
|
});
|
|
```
|
|
|
|
[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)
|
|
[2]: http://developer.android.com/reference/com/google/android/gms/wearable/DataItem.html
|
|
[3]: https://developer.android.com/reference/com/google/android/gms/wearable/WearableListenerService.html
|
|
]]>
|
|
</intro>
|
|
</metadata>
|
|
</sample>
|