You can easily do this by extending the WearableListenerService method and overriding the onConnectedNodes () method.
Wearable side
public class DisconnectListenerService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks { private static final String CONNECTION_STATUS_CAPABILITY_NAME = "is_connection_lost"; private GoogleApiClient mGoogleApiClient; @Override public void onCreate() { super.onCreate(); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Wearable.API) .addConnectionCallbacks(this) .build(); } @Override public void onConnectedNodes(List<Node> connectedNodes) { if (mGoogleApiClient.isConnected()) { updateStatus(); } else if (!mGoogleApiClient.isConnecting()) { mGoogleApiClient.connect(); } } private void updateStatus() { Wearable.CapabilityApi.getCapability( mGoogleApiClient, CONNECTION_STATUS_CAPABILITY_NAME, CapabilityApi.FILTER_REACHABLE).setResultCallback( new ResultCallback<CapabilityApi.GetCapabilityResult>() { @Override public void onResult(CapabilityApi.GetCapabilityResult result) { if (result.getStatus().isSuccess()) { updateConnectionCapability(result.getCapability()); } else { Log.e(TAG, "Failed to get capabilities, " + "status: " + result.getStatus().getStatusMessage()); } } }); } private void updateConnectionCapability(CapabilityInfo capabilityInfo) { Set<Node> connectedNodes = capabilityInfo.getNodes(); if (connectedNodes.isEmpty()) {
Phone side
create an xml file in the / values ββdirectory named wear.xml
<resources> <string-array name="android_wear_capabilities"> <item>is_connection_lost</item> </string-array> </resources>
source share