@Override public void onResume() { super.onResume(); Wearable.getDataClient(this).addListener(this); }
@Override public void onPause() { super.onPause(); Wearable.getDataClient(this).removeListener(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 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); } } }
/** * Sends the asset that was created from the photo we took by adding it to the Data Item store. */ private void sendPhoto(Asset asset) { PutDataMapRequest dataMap = PutDataMapRequest.create(IMAGE_PATH); dataMap.getDataMap().putAsset(IMAGE_KEY, asset); dataMap.getDataMap().putLong("time", new Date().getTime()); PutDataRequest request = dataMap.asPutDataRequest(); request.setUrgent(); Task<DataItem> dataItemTask = Wearable.getDataClient(this).putDataItem(request); dataItemTask.addOnSuccessListener( new OnSuccessListener<DataItem>() { @Override public void onSuccess(DataItem dataItem) { LOGD(TAG, "Sending image was successful: " + dataItem); } }); }
public static void sendApkToWatch(Context context, File apkFile, final ResultCallback callback) { Uri apkUri = FileProvider.getUriForFile(context, "com.calsignlabs.apde.fileprovider", apkFile); Asset asset = Asset.createFromUri(apkUri); PutDataMapRequest dataMap = PutDataMapRequest.create("/apk"); dataMap.getDataMap().putAsset("apk", asset); dataMap.getDataMap().putLong("timestamp", System.currentTimeMillis()); PutDataRequest request = dataMap.asPutDataRequest(); request.setUrgent(); Task<DataItem> putTask = Wearable.getDataClient(context).putDataItem(request); putTask.addOnCompleteListener(new OnCompleteListener<DataItem>() { @Override public void onComplete(@NonNull Task<DataItem> task) { if (task.isSuccessful()) { callback.success(); } else { callback.failure(); } } }); }
@Override public void onResume() { super.onResume(); Wearable.getDataClient(this).addListener(this); }
@Override public void onPause() { super.onPause(); Wearable.getDataClient(this).removeListener(this); }
/** * Sends the data, note this is a broadcast, so we will get the message as well. */ private void sendData(String message) { PutDataMapRequest dataMap = PutDataMapRequest.create(datapath); dataMap.getDataMap().putString("message", message); PutDataRequest request = dataMap.asPutDataRequest(); request.setUrgent(); Task<DataItem> dataItemTask = Wearable.getDataClient(this).putDataItem(request); dataItemTask .addOnSuccessListener(new OnSuccessListener<DataItem>() { @Override public void onSuccess(DataItem dataItem) { Log.d(TAG, "Sending message was successful: " + dataItem); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.e(TAG, "Sending message failed: " + e); } }) ; } }
@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 onPause() { super.onPause(); mDataItemGeneratorFuture.cancel(true /* mayInterruptIfRunning */); Wearable.getDataClient(this).removeListener(this); Wearable.getMessageClient(this).removeListener(this); Wearable.getCapabilityClient(this).removeListener(this); }
/** * Sends the data. Since it specify a client, everyone who is listening to the path, will * get the data. */ private void sendData(String message) { PutDataMapRequest dataMap = PutDataMapRequest.create(datapath); dataMap.getDataMap().putString("message", message); PutDataRequest request = dataMap.asPutDataRequest(); request.setUrgent(); Task<DataItem> dataItemTask = Wearable.getDataClient(this).putDataItem(request); dataItemTask .addOnSuccessListener(new OnSuccessListener<DataItem>() { @Override public void onSuccess(DataItem dataItem) { Log.d(TAG, "Sending message was successful: " + dataItem); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.e(TAG, "Sending message failed: " + e); } }) ; } }