java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ com.google.android.gms.wearable.WearableListenerService

Class Overview

Receives events from other nodes, such as data changes, messages or connectivity events.

The life-cycle of this service is managed by Android Wear. This service will be bound to and events delivered as a result of changes through the DataApi, MessageApi as well as events indicating a device has connected or disconnected from the Android Wear network.

Applications expecting to be notified of events while in the background should extend this class. Activities and other short-lived Android components may use addListener(GoogleApiClient, DataApi.DataListener), addListener(GoogleApiClient, MessageApi.MessageListener) to receive events for a limited period of time.

Implementors could use a LocalBroadcastManager to dispatch events to other components in an application.

For best performance, limit the number of listeners and use mutually exclusive filters where there are multiple listeners. A common pattern is to use prefix filters to listen to different namespaces within an application.

Example manifest entry:
android:pathPrefix is optional.

 <service android:name=".MyWearableListenerService" >
   <intent-filter>
     <!-- listeners receive events that match the action and data filters -->
     <action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
     <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
     <action android:name="com.google.android.gms.wearable.CAPABILITY_CHANGED" />
     <action android:name="com.google.android.gms.wearable.CHANNEL_EVENT" />
     <data android:scheme="wear" android:host="*" android:pathPrefix="/prefix" />
   </intent-filter>
 </service>
 

Summary

[Expand]
Inherited Constants
From class android.app.Service
From class android.content.Context
From interface android.content.ComponentCallbacks2
From interface com.google.android.gms.wearable.ChannelApi.ChannelListener
Public Constructors
WearableListenerService()
Public Methods
Looper getLooper()
This method is used to retrieve the looper all callbacks will run on.
final IBinder onBind(Intent intent)
void onCapabilityChanged(CapabilityInfo capabilityInfo)
void onChannelClosed(Channel channel, int closeReason, int appSpecificErrorCode)
Called when a channel is closed.
void onChannelOpened(Channel channel)
Called when a new channel is opened by a remote node.
void onConnectedNodes(List<Node> connectedNodes)
void onCreate()
void onDataChanged(DataEventBuffer dataEvents)
Receives data changed events.
void onDestroy()
void onInputClosed(Channel channel, int closeReason, int appSpecificErrorCode)
Called when the input side of a channel is closed.
void onMessageReceived(MessageEvent messageEvent)
Receives message events.
void onOutputClosed(Channel channel, int closeReason, int appSpecificErrorCode)
Called when the output side of a channel is closed.
void onPeerConnected(Node peer)
Notification that a peer is now reachable by this node.
void onPeerDisconnected(Node peer)
Notification that a peer has been disconnected from this node or is no longer reachable by this node.
[Expand]
Inherited Methods
From class android.app.Service
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface com.google.android.gms.wearable.DataApi.DataListener
From interface com.google.android.gms.wearable.MessageApi.MessageListener
From interface com.google.android.gms.wearable.NodeApi.NodeListener
From interface com.google.android.gms.wearable.CapabilityApi.CapabilityListener
From interface com.google.android.gms.wearable.ChannelApi.ChannelListener
From interface android.content.ComponentCallbacks

Public Constructors

public WearableListenerService ()

Public Methods

public Looper getLooper ()

This method is used to retrieve the looper all callbacks will run on. The default behavior is to construct a new background thread the first time called and use that thread. If a different looper is desired, subclasses should override this method.

Returns
Looper

public final IBinder onBind (Intent intent)

Parameters
intent Intent
Returns
IBinder

public void onCapabilityChanged (CapabilityInfo capabilityInfo)

Parameters
capabilityInfo CapabilityInfo

public void onChannelClosed (Channel channel, int closeReason, int appSpecificErrorCode)

Called when a channel is closed. This can happen through an explicit call to close(GoogleApiClient) or close(GoogleApiClient, int) on either side of the connection, or due to disconnecting from the remote node.

Parameters
channel Channel
closeReason int: the reason for the channel closing. One of CLOSE_REASON_DISCONNECTED, CLOSE_REASON_REMOTE_CLOSE, or CLOSE_REASON_LOCAL_CLOSE.
appSpecificErrorCode int: the error code specified on close(GoogleApiClient), or 0 if closeReason is CLOSE_REASON_DISCONNECTED.

public void onChannelOpened (Channel channel)

Called when a new channel is opened by a remote node.

Parameters
channel Channel

public void onConnectedNodes (List<Node> connectedNodes)

Parameters
connectedNodes List

public void onCreate ()

public void onDataChanged (DataEventBuffer dataEvents)

Receives data changed events. The provided buffer will be closed after this method completes. Use freeze() on items in the buffer to use them outside of this callscope.

Multiple data events may delivered in a single call and may only contain final-state modifications of a data item. (Eg, multiple calls to putDataItem changing the value of the data item's getData() may only appear as a single event, with the last modification expressed).

Applications needing to track the of all its data items, may use getDataItems(GoogleApiClient) on boot to retrieve all existing data items.

Parameters
dataEvents DataEventBuffer

public void onDestroy ()

public void onInputClosed (Channel channel, int closeReason, int appSpecificErrorCode)

Called when the input side of a channel is closed.

Parameters
channel Channel
closeReason int: the reason for the input closing. One of CLOSE_REASON_DISCONNECTED, CLOSE_REASON_REMOTE_CLOSE, CLOSE_REASON_LOCAL_CLOSE, or CLOSE_REASON_NORMAL
appSpecificErrorCode int: the error code specified on close(GoogleApiClient), or 0 if closeReason is CLOSE_REASON_DISCONNECTED or CLOSE_REASON_NORMAL.

public void onMessageReceived (MessageEvent messageEvent)

Receives message events.

Parameters
messageEvent MessageEvent

public void onOutputClosed (Channel channel, int closeReason, int appSpecificErrorCode)

Called when the output side of a channel is closed.

Parameters
channel Channel
closeReason int: the reason for the output closing. One of CLOSE_REASON_DISCONNECTED, CLOSE_REASON_REMOTE_CLOSE, CLOSE_REASON_LOCAL_CLOSE, or CLOSE_REASON_NORMAL
appSpecificErrorCode int: the error code specified on close(GoogleApiClient), or 0 if closeReason is CLOSE_REASON_DISCONNECTED or CLOSE_REASON_NORMAL.

public void onPeerConnected (Node peer)

Notification that a peer is now reachable by this node. It may be directly connected to this node or it may be reachable only via a directly connected node.

Changes to a node's hop count or nearby status alone will not trigger an onPeerConnected event as long as the node was already connected.

Since multiple nodes can be connected to a network at the same time, peer connected and disconnected events can come in any order.

Parameters
peer Node

public void onPeerDisconnected (Node peer)

Notification that a peer has been disconnected from this node or is no longer reachable by this node.

Since multiple nodes can be connected to a network at the same time, peer connected and disconnected events can come in any order.

Parameters
peer Node