我想sendFileMessage
在 sendbird api 中使用。它需要文件值,我想从drawable
(或assets
)使用这个文件。发送鸟 API
这是从 sendbird 截取的代码
Hashtable<String, Object> info = Helper.getFileInfo(getActivity(), uri);
final String path = (String) info.get("path");
File file = new File(path);
String name = file.getName();
String mime = (String) info.get("mime");
int size = (Integer) info.get("size");
sendFileMessage(file, name, mime, size, "", new BaseChannel.SendFileMessageHandler() {
public void onSent(FileMessage fileMessage, SendBirdException e) {
if (e != null) {
return;
}
mAdapter.appendMessage(fileMessage);
mAdapter.notifyDataSetChanged();
}
});
我uri
从开放图像意图中得到的这段代码运行良好。但我想用于其他目的,我想替换这段代码
File file = new File(path);
变成类似的东西
File file = new File(<path or uri from drawable or assets>);
我试过了uri
Uri uri = Uri.parse("android.resource://com.package.name/raw/filenameWithoutExtension");
File file = new File(uri.getPath());
带输入流
try {
File f=new File("file name");
InputStream inputStream = getResources().openRawResource(R.raw.myrawfile);
OutputStream out=new FileOutputStream(f);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
}
catch (IOException e){}
始终无法获取文件并返回错误代码ERR_REQUEST_FAILED 800220