1
我正在学习android应用程序,我想构建示例代码来检查上传速度。如何在JAVA中获取上传速度
我已经建立了上传速度检查方法,但我不确定它是否正常工作。这是因为我的方法返回上传速度即使Android手机没有正确的互联网连接
我建的方法如..
首先,阅读4.6 MB文本文件,然后存储到字符串变量
其次,检查开始时间
三,使用post方法和对的NameValuePair 4.6MB字符串变量发送到谷歌应用程序引擎(我的谷歌应用程序引擎,它正赶上字符串数据。它不会做任何事情。)
四,检查结束时间
最后,获得(文件大小)/(结束时间 - 开始时间)上传速度
这里是我的代码...
public double Get_UPload_Speed() throws IOException{
String file_path =("46.txt");
File gone = new File(file_path);
String line = "";
double filesize = bts.Get_File_Size(file_path);
int maxsize = rf.Get_Total_Line(file_path);
BufferedReader in = new BufferedReader(new FileReader(gone));
HttpPost httpPost = new HttpPost("http://google.app.engine.address.com");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
StringBuilder stringBuilder = new StringBuilder();
for(int index = 0 ; index < maxsize ; index++){
if((line = in.readLine()) != null){
// keep appending line of text to String buffer
stringBuilder.append(line);
}
else{
break;
}
}
String UL_Packet = stringBuilder.toString();
double startTime = System.currentTimeMillis();
nameValuePair.add(new BasicNameValuePair("content",UL_Packet));
nameValuePair.add(new BasicNameValuePair("guestbookName", "default"));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
Log.d("UploadManager", "Upload Start: " + startTime + " secs");
Log.d("UploadManager", "Upload End: " + endTime + " secs");
Log.d("UploadManager", "Tranfer Time: " + tranferTime + " secs");
Log.d("UploadManager", "Size of file " + filesize + " MB");
double endTime = System.currentTimeMillis();
double tranferTime = (endTime - startTime)/1000;
double rate = filesize/ tranferTime;
Log.d("UploadManager", "Upload speed: "+rate +" Mbps");
return rate;
}
但是,我不确定这是否是获得上传速度的正确方法。
建立上传速度检查方法有没有可靠的方法?
感谢
你的解决方案有什么问题,你得到了什么结果? – Willmore