求助,android图片上传,及时更新进度问题
公司现在正做一个其他网站的android客户端,有点类似腾讯微博,利用官方提供的api接口进行开发,但现在的需求是实现上传照片时,及时更新进度条,SDK中无此功能,所以需要自己写。
我的思路是利用HttpURLConnection建立连接,将图片转化为流,然后传输到服务器,但这样做无法监听到输出流的传输进度,到底要怎么做,才能监听到流的传输进度呢~请高手们帮帮忙,研究三天了,还没解决……泪流满面啊
以下是主要代码:
con=(HttpURLConnection)url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", contentType);
con.setRequestProperty("Authorization", "OAuth "+ token);
con.connect();
以上httpHeader,是官方API提供的格式,没有错误。(如果用严格的自定义表单格式,我也就不纠结进度问题了)
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
InputStream fStream = new FileInputStream(path);
byte[] buffer = new byte[1024];
int length = -1;
while ((length = fStream.read(buffer)) != -1) {
dos.write(buffer);
}
fStream.close();
dos.flush();
dos.close();
con.getResponseCode();
本以为在上面循环中,分批将文件信息读入流中就可以实现进度监听,但实践过后才发现,系统是将整个文件读入流后才传输出去的,也就是说循环结束后才发送数据……现在就是不知道如何在数据传输时监听传输数据……
[解决办法]
通过线程和Handler共同实现 如果你需要的话 我可以把代码给你发过去
[解决办法]