/** * Builds an {@link com.google.android.gms.wearable.Asset} from a bitmap. The image that we get * back from the camera in "data" is a thumbnail size. Typically, your image should not exceed * 320x320 and if you want to have zoom and parallax effect in your app, limit the size of your * image to 640x400. Resize your image before transferring to your wearable device. */ private static Asset toAsset(Bitmap bitmap) { ByteArrayOutputStream byteStream = null; try { byteStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteStream); return Asset.createFromBytes(byteStream.toByteArray()); } finally { if (null != byteStream) { try { byteStream.close(); } catch (IOException e) { // ignore } } } }
@Override protected PutDataMapRequest doInBackground(Void... voids) { PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(Constantes.CAMINHO_DADOS); mUriDados = putDataMapRequest.getUri(); DataMap map = putDataMapRequest.getDataMap(); map.putInt(Constantes.EXTRA_POSICAO_ATUAL, position); map.putInt(Constantes.EXTRA_TOTAL_IMAGENS, Constantes.TOTAL_IMAGENS); Bitmap miniatura = ImagemUtil.imagem( mContext, "foto" + (position + 1) + ".jpg", 160, 160); if (miniatura != null) { final ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); miniatura.compress(Bitmap.CompressFormat.JPEG, 80, byteStream); Asset asset = Asset.createFromBytes(byteStream.toByteArray()); map.putAsset(Constantes.EXTRA_IMAGEM, asset); } return putDataMapRequest; } @Override
private void sendBlob(String path, final byte[] blob) { forceGoogleApiConnect(); if (googleApiClient.isConnected()) { final Asset asset = Asset.createFromBytes(blob); Log.d(TAG, "sendBlob asset size: " + asset.getData().length); final PutDataMapRequest request = PutDataMapRequest.create(path); request.getDataMap().putLong("time", new Date().getTime()); request.getDataMap().putByteArray("asset", blob); request.setUrgent(); final PendingResult result = Wearable.DataApi.putDataItem(googleApiClient, request.asPutDataRequest()); result.setResultCallback(new ResultCallback<DataApi.DataItemResult>() { @Override public void onResult(DataApi.DataItemResult sendMessageResult) { if (!sendMessageResult.getStatus().isSuccess()) { UserError.Log.e(TAG, "ERROR: failed to sendblob Status=" + sendMessageResult.getStatus().getStatusMessage()); } else { UserError.Log.i(TAG, "Sendblob Status=: " + sendMessageResult.getStatus().getStatusMessage()); } } }); Log.d(TAG, "sendBlob: Sending asset of size " + blob.length); } else { Log.e(TAG, "sendBlob: No connection to wearable available!"); } }
private void sendBlob(String path, final byte[] blob) { forceGoogleApiConnect(); if (googleApiClient.isConnected()) { final Asset asset = Asset.createFromBytes(blob); Log.d(TAG, "sendBlob asset size: " + asset.getData().length); final PutDataMapRequest request = PutDataMapRequest.create(path); request.getDataMap().putLong("time", new Date().getTime()); request.getDataMap().putByteArray("asset", blob); request.setUrgent(); final PendingResult result = Wearable.DataApi.putDataItem(googleApiClient, request.asPutDataRequest()); result.setResultCallback(new ResultCallback<DataApi.DataItemResult>() { @Override public void onResult(DataApi.DataItemResult sendMessageResult) { if (!sendMessageResult.getStatus().isSuccess()) { UserError.Log.e(TAG, "ERROR: failed to sendblob Status=" + sendMessageResult.getStatus().getStatusMessage()); } else { UserError.Log.i(TAG, "Sendblob Status=: " + sendMessageResult.getStatus().getStatusMessage()); } } }); Log.d(TAG, "sendBlob: Sending asset of size " + blob.length); } else { Log.e(TAG, "sendBlob: No connection to wearable available!"); } }