@Override public void onPause() { super.onPause(); mDataItemGeneratorFuture.cancel(true /* mayInterruptIfRunning */); Wearable.getDataClient(this).removeListener(this); Wearable.getMessageClient(this).removeListener(this); Wearable.getCapabilityClient(this).removeListener(this); }
@Override public void onResume() { super.onResume(); Wearable.getDataClient(this).addListener(this); }
@Override public void onResume() { super.onResume(); Wearable.getMessageClient(this).addListener(this); }
public void run() { //first get all the nodes, ie connected wearable devices. Task<List<Node>> nodeListTask = Wearable.getNodeClient(getApplicationContext()).getConnectedNodes(); try { // Block on a task and get the result synchronously (because this is on a background // thread). List<Node> nodes = Tasks.await(nodeListTask); //Now send the message to each device. for (Node node : nodes) { Task<Integer> sendMessageTask = Wearable.getMessageClient(MainActivity.this).sendMessage(node.getId(), path, message.getBytes()); try { // Block on a task and get the result synchronously (because this is on a background // thread). Integer result = Tasks.await(sendMessageTask); Log.v(TAG, "SendThread: message send to " + node.getDisplayName()); } catch (ExecutionException exception) { Log.e(TAG, "Task failed: " + exception); } catch (InterruptedException exception) { Log.e(TAG, "Interrupt occurred: " + exception); } } } catch (ExecutionException exception) { Log.e(TAG, "Task failed: " + exception); } catch (InterruptedException exception) { Log.e(TAG, "Interrupt occurred: " + exception); } } }
public static void initMessageBroadcaster(final Context context) { Wearable.getCapabilityClient(context).addListener(new CapabilityClient.OnCapabilityChangedListener() { @Override public void onCapabilityChanged(@NonNull CapabilityInfo capabilityInfo) { updateBestNode(context); } }, "apde_receive_logs"); // Can't do this on the main thread (new Thread(new Runnable() { @Override public void run() { updateBestNode(context); } })).start(); }
@WorkerThread private Collection<String> getNodes() { HashSet<String> results = new HashSet<>(); Task<List<Node>> nodeListTask = Wearable.getNodeClient(getApplicationContext()).getConnectedNodes(); try { // Block on a task and get the result synchronously (because this is on a background // thread). List<Node> nodes = Tasks.await(nodeListTask); for (Node node : nodes) { results.add(node.getId()); } } catch (ExecutionException exception) { Log.e(TAG, "Task failed: " + exception); } catch (InterruptedException exception) { Log.e(TAG, "Interrupt occurred: " + exception); } return results; }
@Override public void onPause() { super.onPause(); Wearable.getDataClient(this).removeListener(this); }
@Override public void onPause() { super.onPause(); Wearable.getMessageClient(this).removeListener(this); }
Wearable.getNodeClient(getApplicationContext()).getConnectedNodes(); try { Wearable.getMessageClient(MainActivity.this).sendMessage(node.getId(), path, message.getBytes());
private static void updateBestNode(Context context) { bestNodeId = null; try { CapabilityInfo info = Tasks.await(Wearable.getCapabilityClient(context).getCapability("apde_receive_logs", CapabilityClient.FILTER_REACHABLE)); for (Node node : info.getNodes()) { if (node.isNearby()) { bestNodeId = node.getId(); } } } catch (Exception e) { // Don't call printStackTrace() because that would make an infinite loop Log.e("apde", e.toString()); } }
@Override public void onResume() { super.onResume(); mDataItemGeneratorFuture = mGeneratorExecutor.scheduleWithFixedDelay( new DataItemGenerator(), 1, 5, TimeUnit.SECONDS); mStartActivityBtn.setEnabled(true); mSendPhotoBtn.setEnabled(mCameraSupported); // Instantiates clients without member variables, as clients are inexpensive to create and // won't lose their listeners. (They are cached and shared between GoogleApi instances.) Wearable.getDataClient(this).addListener(this); Wearable.getMessageClient(this).addListener(this); Wearable.getCapabilityClient(this) .addListener(this, Uri.parse("wear://"), CapabilityClient.FILTER_REACHABLE); }
@Override public void onResume() { super.onResume(); Wearable.getDataClient(this).addListener(this); }
public void run() { try { JSONObject json = new JSONObject(); json.put("severity", Character.toString(severity)); json.put("message", message); json.put("exception", exception); byte[] data = json.toString().getBytes(); if (bestNodeId != null) { Wearable.getMessageClient(context).sendMessage(bestNodeId, "/apde_receive_logs", data); } } catch (Exception e) { // Don't call printStackTrace() because that would make an infinite loop Log.e("apde", e.toString()); } } });
@Override public void run() { boolean successful = false; try { CapabilityInfo info = Tasks.await(Wearable.getCapabilityClient(context).getCapability("apde_run_watch_sketches", CapabilityClient.FILTER_REACHABLE)); for (Node node : info.getNodes()) { if (node.isNearby()) { successful = true; break; } } } catch (ExecutionException | InterruptedException e) { e.printStackTrace(); } if (successful) { callback.success(); } else { callback.failure(); } } })).start();
@Override public void onPause() { super.onPause(); Wearable.getDataClient(this).removeListener(this); }
@Override public void onResume() { super.onResume(); Wearable.getMessageClient(this).addListener(this); }
protected boolean makeFileFromAsset(Asset asset, File destFile) { try { InputStream inputStream = Tasks.await(Wearable.getDataClient(this).getFdForAsset(asset)).getInputStream(); if (inputStream != null) { createFileFromInputStream(inputStream, destFile, true); return true; } } catch (ExecutionException | InterruptedException | IOException e) { e.printStackTrace(); } return false; }
@Override public void onPause() { super.onPause(); Wearable.getMessageClient(this).removeListener(this); }
@Override public void run() { PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(COUNT_PATH); putDataMapRequest.getDataMap().putInt(COUNT_KEY, count++); PutDataRequest request = putDataMapRequest.asPutDataRequest(); request.setUrgent(); LOGD(TAG, "Generating DataItem: " + request); Task<DataItem> dataItemTask = Wearable.getDataClient(getApplicationContext()).putDataItem(request); try { // Block on a task and get the result synchronously (because this is on a background // thread). DataItem dataItem = Tasks.await(dataItemTask); LOGD(TAG, "DataItem saved: " + dataItem); } catch (ExecutionException exception) { Log.e(TAG, "Task failed: " + exception); } catch (InterruptedException exception) { Log.e(TAG, "Interrupt occurred: " + exception); } } }
@WorkerThread private void sendStartActivityMessage(String node) { Task<Integer> sendMessageTask = Wearable.getMessageClient(this).sendMessage(node, START_ACTIVITY_PATH, new byte[0]); try { // Block on a task and get the result synchronously (because this is on a background // thread). Integer result = Tasks.await(sendMessageTask); LOGD(TAG, "Message sent: " + result); } catch (ExecutionException exception) { Log.e(TAG, "Task failed: " + exception); } catch (InterruptedException exception) { Log.e(TAG, "Interrupt occurred: " + exception); } }