平均URL
包com.panodic.settings.net;
導入Java . io . buffered reader;
導入Java . io . file;
import Java . io . filenotfoundexception;
導入Java . io . file output stream;
導入Java . io . io exception;
導入Java . io . inputstream;
導入Java . io . inputstreamreader;
導入Java . net . httpurl connection;
導入Java . net . malformedurexception;
導入Java . net . URL;
導入Java . net . URL connection;
導入com . panodic . settings . util . logutil;
導入com . panodic . settings . util . net util;
導入com . panodic . settings . util . util;
導入com . panodic . settings . view . patch item;
導入Android . OS . bundle;
導入Android . OS . handler;
導入Android . OS . message;
導入Android . app . activity;
導入Android . view . menu;
導入Android . view . view;
導入Android . view . view . onclick listener;
導入Android . view . window;
導入Android . widget . button;
導入Android . widget . progress bar;
導入Android . widget . textview;
導入Android . widget . toast;
導入com . panodic . settings . r;
公共類MesureSpeed擴展Activity實現OnClickListener {
private static final int LOADING = 0x 111;
私有靜態最終int STOP = 0x 112;
私人進展巴毫巴;
private int mProgressState
私有TextView mSpeed
私人按鈕m測量速度;
私有PatchItem mBack
私有float mSpeedContent
私串mAddr = " . lgx . phone expert _ 221804 . apk ";
私串maddr 2 = "/data/wise game/6f 9153 D4 a8d 1f7d 8/QQ . apk ";
私串maddr 3 = "/data/wise game/Baidu search _ Android _ 10189 _ 1399k . apk ";
私有處理程序mHandler = new Handler(util . staskrunner . get looper());
private int test count = 0;
@覆蓋
受保護的void onCreate(Bundle saved instancestate){
super . oncreate(savedInstanceState);
requestWindowFeature(窗口。特征_編號_標題);
setContentView(r . layout . activity _ me sure _ speed);
ms speed =(TextView)findViewById(r . id . speed _ content);
mMeasureSpeed =(Button)findViewById(r . id . me sure _ speed);
m back =(patch item)findViewById(r . id . patch _ settings _ net _ speed);
mBar =(progress bar)findViewById(r . id . bar);
mmeasurespeed . setonclicklistener(this);
m back . setonclicklistener(this);
testCount = 0;
}
@覆蓋
公共void onClick(視圖v) {
if (mBack.isMyChild(v)) {
util . finish(this);
} else if (v == mMeasureSpeed) {
mmeasurespeed . set enabled(false);
mBar.setVisibility(查看。可見);
mProgressState = 0;
testCount = 0;
mbar . set progress(mProgressState);
mhandler . remove callbacks(null);
mhandler . post delayed(new Runnable(){
@覆蓋
公共無效運行(){
測量速度(mAddr);
}
}, 0);
}
}
私有處理程序mProgressHandler = new Handler() {
@覆蓋
公共void handleMessage(Message msg) {
switch (msg.what) {
裝箱:
mbar . set progress(mProgressState);
打破;
案例停止:
mBar.setVisibility(查看。不見了);
setSpeed();
mmeasurespeed . set enabled(true);
打破;
默認值:
打破;
}
}
};
私有void setSpeed() {
if(mSpeedContent & gt;= 1024) {
mSpeedContent =(float)((mSpeedContent)/(1024+0.0));
mSpeedContent =(float)(((int)(mSpeedContent * 10)% 10+0.0)/10+(int)mSpeedContent);
m speed . settext(mSpeedContent+getString(r . string . m));
}否則{
m speed . settext((int)mSpeedContent+getString(r . string . kb));
}
}
private void measureSpeed(String),Toast。長度_短)
。show();
mprogresshandler . sendemptymessage(停止);
返回;
}
int fileLen = 0;
長start time = 0;
long end time = 0;
最終字符串fileName = " tmp.apk
HttpURLConnection conn = null
InputStream為= null
FileOutputStream fos = null
File tmpFile =新文件("/SD card/temp ");
如果(!tmpFile.exists()) {
tmpfile . mkdir();
}
最終文件file =新文件("/SD card/temp/"+fileName);
嘗試{
URL url =新URL(http URL);
嘗試{
conn =(http urlconnection)URL . open connection();
LogUtil.d(“樂寧”);
fileLen = conn . get contentlength();
logutil . d(" len = "+fileLen ");
if(fileLen & lt;= 0) {
mSpeedContent = 0;
mprogresshandler . sendemptymessage(停止);
Toast.makeText(this,getString(R.string.conn_fail),
吐司。LENGTH_SHORT)。show();
返回;
}
start time = system . current time millis();
is = conn . getinputstream();
fos = new FileOutputStream(文件);
byte[] buf =新字節[256];
conn . connect();
if(conn . getresponsecode()& gt;= 400) {
Toast.makeText(this,getString(R.string.no_time),
吐司。LENGTH_SHORT)。show();
mprogresshandler . sendemptymessage(停止);
返回;
}否則{
while (true) {
如果(是!= null) {
int numRead = is . read(buf);
if(numRead & lt;= 0) {
打破;
}否則{
fos.write(buf,0,numRead);
}
mProgressState+=(int)(((numRead+0.0)/(fileLen+0.0))* 1000000);
mprogresshandler . sendemptymessage(正在加載);
//logutil . d(" numRead = "+numRead+" fileLen = "
//+fileLen);
}否則{
打破;
}
}
}
end time = system . current time millis();
} catch (IOException e) {
e . printstacktrace();
Toast.makeText(this,getString(r . string . no _ permission),
吐司。LENGTH_SHORT)。show();
}最後{
如果(conn!= null) {
conn . disconnect();
}
嘗試{
如果(fos!= null) {
fos . close();
}
如果(是!= null) {
is . close();
}
} catch (IOException e1) {
e 1 . printstacktrace();
}
}
} catch(malformedurexception e){
e . printstacktrace();
}
mSpeedContent = fileLen/(end time-start time);
mprogresshandler . sendemptymessage(停止);
}
}