Java 类com.google.android.gms.wearable.MessageApi 实例源码

项目:DoNotDisturbSync    文件:WearMessageSenderService.java   
/**
 * Handle the message sending action in the provided background thread.
 */
private void handleActionSendMessage(String mode) {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .build();

    if (!(mGoogleApiClient.isConnected() || mGoogleApiClient.isConnecting())) {
        mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT, TimeUnit.SECONDS);
    }

    NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();

    // Send the Do Not Disturb mode message to all devices (nodes)
    for (Node node : nodes.getNodes()) {
        MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), DND_SYNC_PREFIX, mode.getBytes()).await();

        if (!result.getStatus().isSuccess()){
            Log.e(TAG, "Failed to send message to " + node.getDisplayName());
        } else {
            Log.i(TAG, "Successfully sent message " + mode + " to " + node.getDisplayName());
        }
    }
}
项目:DoNotDisturbSync    文件:WearMessageSenderService.java   
/**
 * Handle the message sending action in the provided background thread.
 */
private void handleActionSendMessage(String mode) {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .build();

    if (!(mGoogleApiClient.isConnected() || mGoogleApiClient.isConnecting())) {
        mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT, TimeUnit.SECONDS);
    }

    NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();

    // Send the Do Not Disturb mode message to all devices (nodes)
    for (Node node : nodes.getNodes()) {
        MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), DND_SYNC_PREFIX, mode.getBytes()).await();

        if (!result.getStatus().isSuccess()){
            Log.e(TAG, "Failed to send message to " + node.getDisplayName());
        } else {
            Log.i(TAG, "Successfully sent message " + mode + " to " + node.getDisplayName());
        }
    }

    //mGoogleApiClient.disconnect();
}
项目:Android-Wear-Projects    文件:MainActivity.java   
private void sendMessage(String message) {
    if (mNode != null && mGoogleApiClient != null) {
        Wearable.MessageApi.sendMessage(mGoogleApiClient, mNode.getId(), WEAR_PATH, message.getBytes())
                .setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                    @Override
                    public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                        if (!sendMessageResult.getStatus().isSuccess()) {
                            Log.d("packtchat", "Failed message: " +
                                    sendMessageResult.getStatus().getStatusCode());
                        } else {
                            Log.d("packtchat", "Message succeeded");
                        }
                    }
                });
    }
}
项目:Android-Wear-Projects    文件:MainActivity.java   
private void sendMessage(String city) {
    if (mNode != null && mGoogleApiClient != null) {
        Wearable.MessageApi.sendMessage(mGoogleApiClient, mNode.getId(), WEAR_PATH, city.getBytes())
                .setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                    @Override
                    public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                        if (!sendMessageResult.getStatus().isSuccess()) {
                            Log.d("packtchat", "Failed message: " +
                                    sendMessageResult.getStatus().getStatusCode());
                        } else {
                            Log.d("packtchat", "Message succeeded");
                        }
                    }
                });
    }
}
项目:Android-DFU-App    文件:ActionReceiver.java   
/**
 * Sends the given message to the handheld.
 * @param path message path
 * @param message the message
 */
private void sendMessageToHandheld(final @NonNull Context context, final @NonNull String path, final @NonNull String message) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final GoogleApiClient client = new GoogleApiClient.Builder(context)
                    .addApi(Wearable.API)
                    .build();
            client.blockingConnect();

            final NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(client).await();
            for(Node node : nodes.getNodes()) {
                final MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(client, node.getId(), path, message.getBytes()).await();
                if (!result.getStatus().isSuccess()){
                    Log.w(TAG, "Failed to send " + path + " to " + node.getDisplayName());
                }
            }
            client.disconnect();
        }
    }).start();
}
项目:Android-DFU-App    文件:UARTCommandsActivity.java   
/**
 * Sends the given command to the handheld.
 *
 * @param command the message
 */
private void sendMessageToHandheld(final @NonNull Context context, final @NonNull String command) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final GoogleApiClient client = new GoogleApiClient.Builder(context)
                    .addApi(Wearable.API)
                    .build();
            client.blockingConnect();

            final NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(client).await();
            for (Node node : nodes.getNodes()) {
                final MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(client, node.getId(), Constants.UART.COMMAND, command.getBytes()).await();
                if (!result.getStatus().isSuccess()) {
                    Log.w(TAG, "Failed to send " + Constants.UART.COMMAND + " to " + node.getDisplayName());
                }
            }
            client.disconnect();
        }
    }).start();
}
项目:Android-DFU-App    文件:UARTService.java   
/**
 * Sends the given message to all connected wearables. If the path is equal to {@link Constants.UART#DEVICE_DISCONNECTED} the service will be stopped afterwards.
 * @param path message path
 * @param message the message
 */
private void sendMessageToWearables(final @NonNull String path, final @NonNull String message) {
    if(mGoogleApiClient.isConnected()) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
                for(Node node : nodes.getNodes()) {
                    Logger.v(getLogSession(), "[WEAR] Sending message '" + path + "' to " + node.getDisplayName());
                    final MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), path, message.getBytes()).await();
                    if(result.getStatus().isSuccess()){
                        Logger.i(getLogSession(), "[WEAR] Message sent");
                    } else {
                        Logger.w(getLogSession(), "[WEAR] Sending message failed: " + result.getStatus().getStatusMessage());
                        Log.w(TAG, "Failed to send " + path + " to " + node.getDisplayName());
                    }
                }
                if (Constants.UART.DEVICE_DISCONNECTED.equals(path))
                    stopService();
            }
        }).start();
    } else {
        if (Constants.UART.DEVICE_DISCONNECTED.equals(path))
            stopService();
    }
}
项目:Advanced_Android_Development_Wear    文件:ConfigDataListenerService.java   
private void sendMessageToDevice(final String key) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            if (mGoogleApiClient == null) {
                mGoogleApiClient = (new com.google.android.gms.common.api.GoogleApiClient.Builder(ConfigDataListenerService.this)).addConnectionCallbacks(ConfigDataListenerService.this).addOnConnectionFailedListener(ConfigDataListenerService.this).addApi(Wearable.API).build();
            }
            NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
            if (nodes != null && nodes.getNodes() != null) {
                for (Node node : nodes.getNodes()) {
                    MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), key, null).await();
                    if (!result.getStatus().isSuccess()) {
                        Log.e(TAG, "Error during sending message");
                    } else {
                        Log.i(TAG, "Success!! sent to: " + node.getDisplayName());
                    }
                }
            }
        }
    }).start();
}
项目:APReader    文件:Supplier.java   
public void sendWearableMessage(String message, @Nullable final AsyncListener<Status> listener) {
    if (node != null && apiClient != null && apiClient.isConnected()) {
        Wearable.MessageApi.sendMessage(apiClient, node.getId(), WEAR_PATH, message.getBytes()).setResultCallback(
                new ResultCallback<MessageApi.SendMessageResult>() {
                    @Override
                    public void onResult(@NonNull MessageApi.SendMessageResult sendMessageResult) {
                        if (listener != null) {
                            Status status = sendMessageResult.getStatus();
                            if (status.isSuccess())
                                listener.onTaskComplete(status);
                            else listener.onFailure();
                        }
                    }
                }
        );
    } else if (listener != null) listener.onFailure();
}
项目:WeaRemote    文件:Communicator.java   
public void sendMessage(String command, byte[] data)
{
    if (mNode == null)
        return;

    Wearable.MessageApi.sendMessage(mGoogleApiClient, mNode.getId(), command, data).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>()
    {
        @Override
        public void onResult(MessageApi.SendMessageResult sendMessageResult)
        {
            /*if (!sendMessageResult.getStatus().isSuccess())
            {

            }*/
        }
    });
}
项目:android-samples    文件:TrackActivity.java   
/**
 * Send the current step count to the phone. This does not require guarantee of message delivery. As, if
 * the message is not delivered, the count will get updated when second message gets delivered.
 * So, we are using messages api for passing the data that are usful at the current moment only.
 * <p>
 * <B>Note: </B> Messages will block the UI thread while sending. So, we should send messages in background
 * thread only.
 *
 * @param stepCount current step count.
 */
private void sendStepCountMessage(final String stepCount) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
            for (Node node : nodes.getNodes()) {
                MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(
                        mGoogleApiClient, node.getId(), STEP_COUNT_MESSAGES_PATH, stepCount.getBytes()).await();

                //check  if the message is delivered?
                Log.d("Messages Api", result.getStatus().isSuccess() ? "Sent successfully" : "Sent failed.");
            }
        }
    }).start();
}
项目:adrenaline_watch_face    文件:SonicBoomFace.java   
protected void fireMessage(final String command) {
    if (phoneNodeId == null) {
        //bad, we cannot send message
    } else {
        //fire the message to the first connected node in list
        Log.d(TAG, "Sending message to Node with ID: " + phoneNodeId);

        PendingResult<MessageApi.SendMessageResult> messageResult = Wearable.MessageApi.sendMessage(mGoogleApiClient, phoneNodeId, command, null);
        messageResult.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
            @Override
            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                Status status = sendMessageResult.getStatus();
                Log.d(TAG, "Status: " + status.toString());
                if (status.getStatusCode() != WearableStatusCodes.SUCCESS) {
                    Log.e(TAG,"Something go wrong during sending command... "+command);
                } else {
                    Log.d(TAG,"Message sent successfully to node. "+command);
                }
            }
        });
    }
}
项目:ScribaNotesApp    文件:ActionReceiver.java   
/**
 * Sends the given message to the handheld.
 * @param path message path
 * @param message the message
 */
private void sendMessageToHandheld(final @NonNull Context context, final @NonNull String path, final @NonNull String message) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final GoogleApiClient client = new GoogleApiClient.Builder(context)
                    .addApi(Wearable.API)
                    .build();
            client.blockingConnect();

            final NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(client).await();
            for(Node node : nodes.getNodes()) {
                final MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(client, node.getId(), path, message.getBytes()).await();
                if (!result.getStatus().isSuccess()){
                    Log.w(TAG, "Failed to send " + path + " to " + node.getDisplayName());
                }
            }
            client.disconnect();
        }
    }).start();
}
项目:ScribaNotesApp    文件:UARTCommandsActivity.java   
/**
 * Sends the given command to the handheld.
 *
 * @param command the message
 */
private void sendMessageToHandheld(final @NonNull Context context, final @NonNull String command) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            final GoogleApiClient client = new GoogleApiClient.Builder(context)
                    .addApi(Wearable.API)
                    .build();
            client.blockingConnect();

            final NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(client).await();
            for (Node node : nodes.getNodes()) {
                final MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(client, node.getId(), Constants.UART.COMMAND, command.getBytes()).await();
                if (!result.getStatus().isSuccess()) {
                    Log.w(TAG, "Failed to send " + Constants.UART.COMMAND + " to " + node.getDisplayName());
                }
            }
            client.disconnect();
        }
    }).start();
}
项目:Smartwatch    文件:DatalayerUtil.java   
/**
 *  Method to send a message to all other nodes.
 *
 * @param googleApiClient a connected googleApiClient
 * @param path path to send message to
 * @param data payload to send
 * @return Observable that emits whether the message was sent
 */
public static Observable<Boolean> getSendMessage(final GoogleApiClient googleApiClient, final String path, final byte[] data) {
    return NodeUtil.getRemoteNodeId(googleApiClient)
            .flatMap(new Func1<String, Observable<Boolean>>() {
                @Override
                public Observable<Boolean> call(final String nodeId) {
                    return Observable.create(new Observable.OnSubscribe<Boolean>() {
                        @Override
                        public void call(final Subscriber<? super Boolean> subscriber) {
                            Wearable.MessageApi.sendMessage(googleApiClient, nodeId, path, data).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                                @Override
                                public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                                    subscriber.onNext(sendMessageResult.getStatus().isSuccess());
                                    subscriber.onCompleted();
                                }
                            });
                        }
                    });
                }
            });
}
项目:xDrip    文件:ListenerService.java   
@Override
public void onDestroy() {
    super.onDestroy();
    if (googleApiClient != null && googleApiClient.isConnected()) {
        googleApiClient.disconnect();
    }
    if (googleApiClient != null) {
        Wearable.MessageApi.removeListener(googleApiClient, this);
    }

    Log.d(TAG, "Stop Sensors");
    stopMeasurement();


    if (mPrefs.getBoolean("enable_wearG5", true)) {
        Log.d(TAG, "Start BT Collection Service");
        stopBtService();
    }
}
项目:xDrip-plus    文件:ListenerService.java   
@Override
public void onDestroy() {
    super.onDestroy();
    if (googleApiClient != null && googleApiClient.isConnected()) {
        googleApiClient.disconnect();
    }
    if (googleApiClient != null) {
        Wearable.MessageApi.removeListener(googleApiClient, this);
    }

    Log.d(TAG, "Stop Sensors");
    stopMeasurement();


    if (mPrefs.getBoolean("enable_wearG5", true)) {
        Log.d(TAG, "Start BT Collection Service");
        stopBtService();
    }
}
项目:Unity-Wear-Controller    文件:MainActivity.java   
private void initConnectionCallbacks()
{
    mConnectionCallbacks=new GoogleApiClient.ConnectionCallbacks()
    {
        @Override
        public void onConnected(@Nullable Bundle bundle)
        {
            AddTextInterface("onConnected...");
            initMessageListener();
            Wearable.MessageApi.addListener(mApiClient, mMessageListener);
            sendMessageChecking(PublicConstants.START_ACTIVITY, "");
            AddTextInterface("Sended START_ACTIVITY command");
        }

        @Override
        public void onConnectionSuspended(int i) {AddTextInterface("Connection suspended");}
    };
}
项目:Unity-Wear-Controller    文件:MainActivity.java   
public void run()
{
    if (mWearableID == "")
        getMWearable();

    if (mConnectedWearable != 1 && !Path.equals(PublicConstants.START_ACTIVITY) && !Path.equals(PublicConstants.STOP_ACTIVITY))
    {
        //if not connected
        Log.e("SendMessage", "Not smartwatch connected");
        OpenWearableApp();
    }else
    {
        super.run();

        if (PendingResultSend != null)
        {
            MessageApi.SendMessageResult result = PendingResultSend.await();
            if (!result.getStatus().isSuccess())
                Log.e("sendMessage", "ERROR: failed to send Message: " + result.getStatus());
        } else
            AddTextInterface("No smartwatch connected", Toast.LENGTH_LONG);
    }
}
项目:Unity-Wear-Controller    文件:MainActivity.java   
private void initConnectionCallbacks()
{
    mConnectionCallbacks=new GoogleApiClient.ConnectionCallbacks()
    {
        @Override
        public void onConnected(@Nullable Bundle bundle)
        {
            AddTextInterface("onConnected...");
            initMessageListener();
            Wearable.MessageApi.addListener(mApiClient, mMessageListener);
            sendMessageChecking(PublicConstants.START_ACTIVITY, "");
            AddTextInterface("Sended START_ACTIVITY command");
        }

        @Override
        public void onConnectionSuspended(int i) {AddTextInterface("Connection suspended");}
    };
}
项目:Unity-Wear-Controller    文件:MainActivity.java   
public void run()
{
    if (mWearableID == "")
        getMWearable();

    if (mConnectedWearable != 1 && !Path.equals(PublicConstants.START_ACTIVITY) && !Path.equals(PublicConstants.STOP_ACTIVITY))
    {
        //if not connected
        Log.e("SendMessage", "Not smartwatch connected");
        OpenWearableApp();
    }else
    {
        super.run();

        if (PendingResultSend != null)
        {
            MessageApi.SendMessageResult result = PendingResultSend.await();
            if (!result.getStatus().isSuccess())
                Log.e("sendMessage", "ERROR: failed to send Message: " + result.getStatus());
        } else
            AddTextInterface("No smartwatch connected", Toast.LENGTH_LONG);
    }
}
项目:Mycroft-Android    文件:MainActivity.java   
public void sendMessage(String message) {
    if(mNode != null && mGoogleApiClient != null) {
        Wearable.MessageApi.sendMessage(mGoogleApiClient, mNode.getId(), Constants.MYCROFT_QUERY_MESSAGE_PATH, message.getBytes()).setResultCallback(
                new ResultCallback<MessageApi.SendMessageResult>() {
                    @Override
                    public void onResult(@NonNull MessageApi.SendMessageResult sendMessageResult) {
                        if (!sendMessageResult.getStatus().isSuccess()) {
                            showToast("Message Failed");
                        } else {
                            showToast("Message Sent");
                        }
                    }
                }
        );
    }
    else
    {
        showToast("Unable To Send Message");
    }
}
项目:MirageWatch    文件:MyWatchFace.java   
@Override
public void onConnected(Bundle bundle) {

    new Thread(new Runnable() {
        @Override
        public void run() {
            NodeApi.GetConnectedNodesResult connectedNodesResult = Wearable.NodeApi.getConnectedNodes(mApiClient).await();
            String tag = MyWatchFace.class.getSimpleName();
            for (Node node : connectedNodesResult.getNodes()) {
                MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(
                        mApiClient,
                        node.getId(),
                        "/RequestBatteryLevel",
                        "RequestBatteryLevel".getBytes())
                        .await();

                if (result.getStatus().isSuccess()) {
                    Log.d(tag, "バッテリーレベル要求の送信に成功");
                } else {
                    Log.d(tag, "バッテリーレベル要求の送信に失敗 (" + result.getStatus().getStatusMessage() + ")");
                }
            }
        }
    }).start();
}
项目:LibreAlarm    文件:WearableApi.java   
public static void sendMessage(final GoogleApiClient client, final String command,
        final byte[] message, final ResultCallback<MessageApi.SendMessageResult> listener) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            NodeApi.GetConnectedNodesResult nodes =
                    Wearable.NodeApi.getConnectedNodes( client ).await();
            for(Node node : nodes.getNodes()) {
                Log.i(TAG, "sending to " + node.getId() + ", command: " + command);
                PendingResult<MessageApi.SendMessageResult> pR =
                        Wearable.MessageApi.sendMessage(client, node.getId(), command, message);
                if (listener != null) pR.setResultCallback(listener);
            }
        }
    }).start();
}
项目:LibreAlarm    文件:WearActivity.java   
@Override
protected void onStop() {
    Log.i(TAG, "onStop");
    if (mHandler != null) mHandler.removeCallbacksAndMessages(null);

    if (mVibrator != null) mVibrator.cancel();
    if (mNfcAdapter != null) {
        mNfcAdapter.disableReaderMode(this);
    }
    if ((mGoogleApiClient != null) && (mGoogleApiClient.isConnected())) {
        Wearable.MessageApi.removeListener(mGoogleApiClient, this);
        mGoogleApiClient.disconnect();
    }
    if (mRootTools != null) mRootTools.executeScripts(false, 15000);
    if ((mWakeLock != null) && (mWakeLock.isHeld())) mWakeLock.release();
    finish();
    super.onStop();
}
项目:LibreAlarm    文件:WearService.java   
@Override
public void onConnectionFailed(ConnectionResult result) {
    if (mResolvingError) {
        // Already attempting to resolve an error.
        return;
    } else if (result.hasResolution() && mActivity != null) {
        try {
            mResolvingError = true;
            result.startResolutionForResult(mActivity, 1000);
        } catch (IntentSender.SendIntentException e) {
            // There was an error with the resolution intent. Try again.
            mGoogleApiClient.connect();
        }
    } else {
        Log.e(TAG, "Connection to Google API client has failed");
        mResolvingError = false;
        if (mListener != null) mListener.onDataUpdated();
        Wearable.MessageApi.removeListener(mGoogleApiClient, this);
        Wearable.DataApi.removeListener(mGoogleApiClient, this);
    }
}
项目:GmsWear    文件:GmsWear.java   
/**
 * Sends an asynchronous message to the node with the given {@code nodeId} through {@code
 * path}. If the {@code callback} is null, then a default callback will be used that provides a
 * feedback to the caller using the {@link DataConsumer#onSendMessageResult}, in which case,
 * the status of the result will be made available. Callers may decide to provide their own
 * {@code callback} to be used instead. This variant receives the message in an array of bytes.
 */
public void sendMessage(String nodeId, String path, @Nullable byte[] bytes,
        @Nullable final ResultCallback<? super MessageApi.SendMessageResult> callback) {
    assertApiConnectivity();
    Wearable.MessageApi.sendMessage(mGoogleApiClient, nodeId, path, bytes).setResultCallback(
            new ResultCallback<MessageApi.SendMessageResult>() {
                @Override
                public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                    if (!sendMessageResult.getStatus().isSuccess()) {
                        Log.e(TAG, "Failed to send message, statusCode: " + sendMessageResult
                                .getStatus().getStatusCode());
                    }
                    if (callback == null) {
                        for (DataConsumer consumer : mDataConsumers) {
                            consumer.onSendMessageResult(sendMessageResult.getStatus()
                                    .getStatusCode());
                        }
                    } else {
                        callback.onResult(sendMessageResult);
                    }
                }
            });
}
项目:android-wear-bilateral-communication    文件:WearActivity.java   
private void sendMessage(final String path, final String message) {
    new Thread( new Runnable() {
        @Override
        public void run() {
            NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes( mApiClient ).await();
            for(Node node : nodes.getNodes()) {
                MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(
                        mApiClient, node.getId(), path, message.getBytes() ).await();
            }

            runOnUiThread( new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(), "m to phon" + message, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }).start();
}
项目:android-wear-bilateral-communication    文件:MainActivity.java   
private void sendAsyncMessage(final String path, final String message) {

        Wearable.NodeApi.getConnectedNodes( mApiClient ).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
            @Override
            public void onResult(@NonNull NodeApi.GetConnectedNodesResult nodes) {
                for(Node node : nodes.getNodes()) {
                    Wearable.MessageApi.sendMessage(
                            mApiClient, node.getId(), path, message.getBytes() ).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                        @Override
                        public void onResult(@NonNull MessageApi.SendMessageResult sendMessageResult) {
                            if (sendMessageResult.getStatus().isSuccess()){
                                showToastMT(message);
                            }
                        }
                    });
                }

            }
        });


    }
项目:SpritzerWear    文件:SendMessageToNode.java   
public void run() {
    if ((objectArray.length / 1024) > 100) {
        throw new RuntimeException("Object is too big to push it via Google Play Services");
    }
    GoogleApiClient googleApiClient = SendWearManager.getInstance(context);
    googleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
    NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
    if(nodes != null) {
        for (Node node : nodes.getNodes()) {
            MessageApi.SendMessageResult result;
            result = Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), path, objectArray).await();
            if (!result.getStatus().isSuccess()) {
                Log.v(TAG, "ERROR: failed to send Message via Google Play Services");
            }
            Log.d(TAG, "run send:");
        }
    }
}
项目:DeviceConnect-Android    文件:WearCanvasProfile.java   
@Override
public boolean onRequest(final Intent request, final Intent response) {
    String nodeId = WearUtils.getNodeId(getServiceID(request));
    getManager().sendMessageToWear(nodeId, WearConst.DEVICE_TO_WEAR_CANCAS_DELETE_IMAGE,
        "", new WearManager.OnMessageResultListener() {
            @Override
            public void onResult(final MessageApi.SendMessageResult result) {
                if (result.getStatus().isSuccess()) {
                    setResult(response, DConnectMessage.RESULT_OK);
                } else {
                    MessageUtils.setIllegalDeviceStateError(response);
                }
                sendResponse(response);
            }

            @Override
            public void onError() {
                MessageUtils.setIllegalDeviceStateError(response);
                sendResponse(response);
            }
        });
    return false;
}
项目:DeviceConnect-Android    文件:WearManager.java   
/**
 * メッセージをWearに送信する.
 *
 * @param dest     送信先のWearのnodeId
 * @param action   メッセージのアクション
 * @param message  メッセージ
 * @param listener メッセージを送信した結果を通知するリスナー
 */
public void sendMessageToWear(final String dest, final String action, final String message,
                              final OnMessageResultListener listener) {
    sendMessageToWear(new Runnable() {
        @Override
        public void run() {
            NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
            MessageApi.SendMessageResult result = null;
            for (Node node : nodes.getNodes()) {
                if (node.getId().indexOf(dest) != -1) {
                    result = Wearable.MessageApi.sendMessage(
                            mGoogleApiClient, node.getId(), action, message.getBytes()).await();
                }
            }
            if (result != null) {
                if (listener != null) {
                    listener.onResult(result);
                }
            } else {
                if (listener != null) {
                    listener.onError();
                }
            }
        }
    });
}
项目:DeviceConnect-Android    文件:WearApplication.java   
public void sendMessage(final String destinationId, final String path, final String data) {
    mExecutorService.execute(new Runnable() {
        @Override
        public void run() {
            GoogleApiClient client = mGoogleApiClient;
            if (!client.isConnected()) {
                ConnectionResult connectionResult = client.blockingConnect(30, TimeUnit.SECONDS);
                if (!connectionResult.isSuccess()) {
                    if (BuildConfig.DEBUG) {
                        Log.e("WEAR", "Failed to connect google play service.");
                    }
                    return;
                }
            }

            MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(client, destinationId,
                    path, data.getBytes()).await();
            if (!result.getStatus().isSuccess()) {
                if (BuildConfig.DEBUG) {
                    Log.e("WEAR", "Failed to send a sensor event.");
                }
            }
        }
    });
}
项目:swan-sense-studio    文件:RemoteSensorManager.java   
private void controlMeasurementInBackground(final String path, byte[] extra) {
    if (validateConnection()) {
        List<Node> nodes = Wearable.NodeApi.getConnectedNodes(googleApiClient).await().getNodes();

        Log.d(TAG, "Sending to nodes: " + nodes.size());


        for (Node node : nodes) {
            Log.i(TAG, "add node " + node.getDisplayName());
            Wearable.MessageApi.sendMessage(
                    googleApiClient, node.getId(), path, extra
            ).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                @Override
                public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                    Log.d(TAG, "controlMeasurementInBackground(" + path + "): " + sendMessageResult.getStatus().isSuccess());
                }
            });
        }
    } else {
        Log.w(TAG, "No connection possible");
    }
}
项目:OkWear    文件:OkWear.java   
@Override
public void sendMessageAll(@Nullable final byte[] payload, @Nullable String path,
                           @Nullable final SendResultListener<MessageApi.SendMessageResult> listener) {
    if (path == null) {
        path = DEFAULT_MESSAGE_API_PATH;
    }
    final String finalPath = path;
    mHelper.getNodes(new NodeChangeListener() {
        @Override
        public void onReceiveNodes(List<Node> nodes) {
            for (Node node : nodes) {
                sendMessage(node, payload, finalPath, listener);
            }
        }
    });
}
项目:OkWear    文件:OkWear.java   
@Override
public void sendMessageAllAsync(@Nullable final byte[] payload, @Nullable String path,
                                @Nullable final SendResultListener<MessageApi.SendMessageResult> listener) {
    if (path == null) {
        path = DEFAULT_MESSAGE_API_PATH;
    }
    final String finalPath = path;
    mHelper.getNodes(new NodeChangeListener() {
        @Override
        public void onReceiveNodes(List<Node> nodes) {
            for (Node node : nodes) {
                sendMessageAsync(node, payload, finalPath, listener);
            }
        }
    });
}
项目:powerhour    文件:GameActivity.java   
@Override
public void onMessageReceived(MessageEvent event) {
    Log.d(TAG, "onMessageReceived: " + event);
    switch (event.getPath()) {
        case Consts.Paths.GAME_SHOT:
            Log.d(TAG, "onMessageReceived: SHOT TIME");
            GameState.getInstance().setIsShotTime(true);
            mGameScreen.updateScreen(isAmbient());
            break;
        case Consts.Paths.GAME_STOP:
            Log.d(TAG, "onMessageReceived: Game has stopped");
            GameState.getInstance().stop();
            updateDisplay();
            Message.sendReady(this);
            break;
        case Consts.Paths.GAME_FINISH:
            Log.i(TAG, "onMessageReceived: Game has finished");
            Wearable.DataApi.removeListener(mGoogleApiClient, this);
            Wearable.MessageApi.removeListener(mGoogleApiClient, this);
            finish();
            break;
    }
}
项目:OkWear    文件:ConnectionHelper.java   
/**
 * send message
 * you don't have to send anything
 *
 * @param node     送信先node
 * @param payload
 * @param path
 * @param listener
 */
public void sendMessage(@NonNull final Node node, @Nullable final byte[] payload,
                        @NonNull final String path, @Nullable final SendResultListener<MessageApi.SendMessageResult> listener) {
    final PendingResult<MessageApi.SendMessageResult> messageResult =
            Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), path, payload);
    messageResult.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
        @Override
        public void onResult(final MessageApi.SendMessageResult sendMessageResult) {
            Log.d(TAG, "Status: " + sendMessageResult.getStatus());
            if (listener != null) {
                listener.onResult(sendMessageResult);
            }
        }
    });

}
项目:sunshine-wear-watchface    文件:SunshineWatchFace.java   
@Override
public void onVisibilityChanged(boolean visible) {
    super.onVisibilityChanged(visible);

    if (visible) {
        registerReceiver();
        mGoogleApiClient.connect();
        // Update time zone in case it changed while we weren't visible.
        mTime.clear(TimeZone.getDefault().getID());
        mTime.setToNow();
    } else {
        unregisterReceiver();
        if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
            Wearable.DataApi.removeListener(mGoogleApiClient, this);
            Wearable.NodeApi.removeListener(mGoogleApiClient, this);
            Wearable.MessageApi.removeListener(mGoogleApiClient, this);
            mGoogleApiClient.disconnect();
            mGoogleApiClient.disconnect();
        }
    }

    // Whether the timer should be running depends on whether we're visible (as well as
    // whether we're in ambient mode), so we may need to start or stop the timer.
    updateTimer();
}
项目:WearGuitarTuner    文件:PreferenceSyncHelper.java   
/**
 * Will synchronize a preference to the other device by using the Wearable MessageAPI.
 * Note: synchronization might fail even if this method returns true. Don't rely on this mechanism.
 * Don't use this method but the above wrapper methods instead!
 *
 * @param googleApiClient       connected instance of the Google API Client to send a message
 * @param nodeID                node id of the other device
 * @param prefKey               key of the preference that should be synchronized
 * @param type                  lowercase type of the preference (e.g. "string", "long", or "boolean")
 * @param newValue              new value of the preference encoded as byte array
 * @return true if the message was sent successfully. This does not guarantee that the other device has received the msg
 */
public static boolean syncPref(GoogleApiClient googleApiClient, String nodeID, final String prefKey, String type, byte[] newValue) {
    if(googleApiClient == null || !googleApiClient.isConnected()) {
        Log.e(LOGTAG, "syncPref: GoogleApiClient is not connected!");
        return false;
    }
    if(nodeID == null || nodeID.equals("")) {
        Log.e(LOGTAG, "syncPref: Node ID is invalid!");
        return false;
    }

    // Send it to the handheld device:
    Wearable.MessageApi.sendMessage(googleApiClient, nodeID,
            "/syncPref/" + type + "/" + prefKey, newValue).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
        @Override
        public void onResult(MessageApi.SendMessageResult sendMessageResult) {
            if (!sendMessageResult.getStatus().isSuccess())
                Log.e(LOGTAG, "syncPref: Failed to sync preference ("+prefKey+") to the handheld: " + sendMessageResult.toString());
            else
                Log.d(LOGTAG, "syncPref: Synced preference "+prefKey+" (messageID=" + sendMessageResult.getRequestId() + ")!");
        }
    });
    return true;
}