如何在URI中转换ByteArrayOutputStream

时间:2019-05-07 18:59:42

标签: android pdf twilio

我正在使用Twilio服务进行聊天,此聊天应为用户提供上传图像和PDF文档的可能性。我的问题是从Twilio下载文档的方法将其返回为ByteArrayOutputStream,并且我需要将其转换为URI才能在以下允许用户使用的代码中使用打开它。

private void openDocument(String name, Uri path) {
            try {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                if (name.contains(".pdf")) {
                    intent.setDataAndType(path, "application/pdf");
                } else if (name.contains(".txt")) {
                    intent.setDataAndType(path, "text/plain");
                }
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(context, context.getString(R.string.not_found_application_to_open_file), Toast.LENGTH_LONG).show();
            }
        }

尝试使用此代码,但无效。

private void uploadPdfFile(Message.Media media, Message message) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        media.download(outputStream, new StatusListener() {
            @Override
            public void onSuccess() {
                Log.d(TAG, "Media message downloaded");
                byte[] bitmapData = outputStream.toByteArray();
                String s = new String(buf, "UTF-8");
                URI uri = URI.parse(s);
                openDocument(media.getFileName(), uri);
            }

            @Override
            public void onError(ErrorInfo errorInfo) {
                Log.e(TAG, "Error downloading media message");
                Toast.makeText(ChatActivity.this, getString(R.string.error_uploading_image), Toast.LENGTH_LONG).show();
            }
        }, new ProgressListener() {
            @Override
            public void onStarted() {
                showProgressDialog("Cargando documento...");
            }

            @Override
            public void onProgress(long l) { }

            @Override
            public void onCompleted(String s) {
                dismissProgressDialog();
            }
        });
    }

如何将ByteArrayOutputStream转换为URI。感谢您的帮助。

0 个答案:

没有答案