我正在使用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
。感谢您的帮助。