android獲取當前上傳網速
① Android開發中,如何測當前網速
原理: 到網上找個可以下載的apk 的URL,記住apk不要過大一般1M足夠了.然後通過記錄下載這個apk的時間和大小,算出當前網速.當然一個URL並不是很准確,要求精確的可以多下載幾個
URL求平均值</span>.
package com.panodic.settings.net;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import com.panodic.settings.util.LogUtil;
import com.panodic.settings.util.NetUtil;
import com.panodic.settings.util.Util;
import com.panodic.settings.view.PatchItem;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.panodic.settings.R;
public class MesureSpeed extends Activity implements OnClickListener {
private static final int LOADING = 0x111;
private static final int STOP = 0x112;
private ProgressBar mBar;
private int mProgressState;
private TextView mSpeed;
private Button mMeasureSpeed;
private PatchItem mBack;
private float mSpeedContent;
private String mAddr = "http://cdn.market.hiapk.com/data/upload/2012/12_09/22/cn.lgx.phoneexpert_221804.apk";
private String mAddr2 = "http://gdown..com/data/wisegame/6f9153d4a8d1f7d8/QQ.apk";
private String mAddr3 = "http://gdown..com/data/wisegame/search_Android_10189_1399k.apk";
private Handler mHandler = new Handler(Util.sTaskRunner.getLooper());
private int testCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_mesure_speed);
mSpeed = (TextView) findViewById(R.id.speed_content);
mMeasureSpeed = (Button) findViewById(R.id.mesure_speed);
mBack = (PatchItem) findViewById(R.id.patch_settings_net_speed);
mBar = (ProgressBar) findViewById(R.id.bar);
mMeasureSpeed.setOnClickListener(this);
mBack.setOnClickListener(this);
testCount = 0;
}
@Override
public void onClick(View v) {
if (mBack.isMyChild(v)) {
Util.finish(this);
} else if (v == mMeasureSpeed) {
mMeasureSpeed.setEnabled(false);
mBar.setVisibility(View.VISIBLE);
mProgressState = 0;
testCount = 0;
mBar.setProgress(mProgressState);
mHandler.removeCallbacks(null);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
measureSpeed(mAddr);
}
}, 0);
}
}
private Handler mProgressHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case LOADING:
mBar.setProgress(mProgressState);
break;
case STOP:
mBar.setVisibility(View.GONE);
setSpeed();
mMeasureSpeed.setEnabled(true);
break;
default:
break;
}
}
};
private void setSpeed() {
if (mSpeedContent >= 1024) {
mSpeedContent = (float) ((mSpeedContent) / (1024 + 0.0));
mSpeedContent = (float) (((int) (mSpeedContent * 10) % 10 + 0.0) / 10 + (int) mSpeedContent);
mSpeed.setText(mSpeedContent + getString(R.string.m));
} else {
mSpeed.setText((int) mSpeedContent + getString(R.string.kb));
}
}
private void measureSpeed(String httpUrl) {
if (!NetUtil.isWifiConnected(this) && !NetUtil.isWireConnected(this)) {
Toast.makeText(this, getString(R.string.no_net), Toast.LENGTH_SHORT)
.show();
mProgressHandler.sendEmptyMessage(STOP);
return;
}
int fileLen = 0;
long startTime = 0;
long endTime = 0;
final String fileName = "tmp.apk";
HttpURLConnection conn = null;
InputStream is = null;
FileOutputStream fos = null;
File tmpFile = new File("/sdcard/temp");
if (!tmpFile.exists()) {
tmpFile.mkdir();
}
final File file = new File("/sdcard/temp/" + fileName);
try {
URL url = new URL(httpUrl);
try {
conn = (HttpURLConnection) url.openConnection();
LogUtil.d("lening");
fileLen = conn.getContentLength();
LogUtil.d("len=" + fileLen);
if (fileLen <= 0) {
mSpeedContent = 0;
mProgressHandler.sendEmptyMessage(STOP);
Toast.makeText(this, getString(R.string.conn_fail),
Toast.LENGTH_SHORT).show();
return;
}
startTime = System.currentTimeMillis();
is = conn.getInputStream();
fos = new FileOutputStream(file);
byte[] buf = new byte[256];
conn.connect();
if (conn.getResponseCode() >= 400) {
Toast.makeText(this, getString(R.string.no_time),
Toast.LENGTH_SHORT).show();
mProgressHandler.sendEmptyMessage(STOP);
return;
} else {
while (true) {
if (is != null) {
int numRead = is.read(buf);
if (numRead <= 0) {
break;
} else {
fos.write(buf, 0, numRead);
}
mProgressState += (int) (((numRead + 0.0) / (fileLen + 0.0)) * 1000000);
mProgressHandler.sendEmptyMessage(LOADING);
// LogUtil.d("numRead=" + numRead + " fileLen="
// + fileLen);
} else {
break;
}
}
}
endTime = System.currentTimeMillis();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, getString(R.string.no_permission),
Toast.LENGTH_SHORT).show();
} finally {
if (conn != null) {
conn.disconnect();
}
try {
if (fos != null) {
fos.close();
}
if (is != null) {
is.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
mSpeedContent = fileLen / (endTime - startTime);
mProgressHandler.sendEmptyMessage(STOP);
}
}
② android怎樣獲取網路速度
大部分系統是支持在狀態欄顯示實時網速的,像小米之類的都可以直接設置顯示實時網速。部分廠商的系統沒有這個功能可以通過第三方插件的懸浮窗來顯示。
③ android 文件上傳時 怎麼算文件上傳速度
計算的下載速度,舉例說明一下吧。
例如每隔N秒就改變當前下載速度數字的,N秒前的版下載進權度百分比m%,
N秒後的下載進度百分比n%,當前下載問題的總大小Size【換算成多少kb】
(m%-n%)*Size/N就是 這段時間的下載或上傳速度了。
注意:記得增加判斷一些邊界問題。
④ android app上傳文件速度太慢怎麼處理
一、釋放XP自帶保留20%的帶寬,讓你的網速更快! 1、運行組策略編輯器程序(gpedit.msc)。在「『本地計算機』策略」中,逐級「計算機配置」→「管理模板」→「網路(互聯網)」→「QoS數據包調度程序」分支。在屏幕右邊會出現「QoS數據包調度程序」策略。接著單擊右邊子項目的「限制可保留帶寬」。這時,左邊會顯示「限制可保留帶寬」的清楚描述。從這里我們可了解到「限制可保留帶寬」的有些基本情形。了解之後我們就可以對「限制可保留帶寬」進行設置了。單擊「限制可保留帶寬」下「顯示」旁邊的「屬性」(或選取子項目「限制可保留帶寬」,再點擊右鍵→「屬性」也可),出現「限制可保留帶寬」對話框,先點擊「說明」,再進一步了解「限制可保留帶寬」確定系統(System)可保留的連接帶寬的百分比情形。 之後我們就可以對另外20%帶寬進設置了。點擊「設置」。「設置」為我們提供了三個選取(未配置、已啟用、已禁用),選取「已啟用」,接著再將帶寬限制旁邊的%設置為0%即可,之後按確定退出。 2、單擊「開始」→「連接到」→「顯示全部連接」。 選中你所建立的連接,用滑鼠右鍵單擊屬性,在出現的連接屬性中單擊網路(互聯網),在顯示的網路(互聯網)對話框中,檢查「此連接用下列項目」中「QoS數據包調度程序」是不是已打了勾,沒問題就按確定退出。 3、最後重新開啟系統(System)便完成對另外20%的頻寬利用了 二、清理 ①清空Internet臨時文件夾 他人查看「Internet臨時文件夾」下的圖、Flash等文件便能大體知道你曾到過的網站。要清理它們,可依次單擊IE菜單欄中的「工具」→「Internet選項」,打開(OPEN)「Internet選項」對話框,在「常規」標簽中點擊「刪掉文件」按鈕,在彈出的「刪掉文件」窗口中勾選「刪掉全部離線內容」,最後點擊「確定」。 三、關掉上網設備貓和路由,十多分鍾後再開機 四、還有網路(互聯網)網站問題
⑤ IOS如何獲取網速,下載和上傳速度
啟動騰訊手機管家Ios版,可看到「網路測試」功能
點擊並進入「網路測試」,會看到類似汽車表盤測試界
此時點擊「開始測速」,測速開始
測試結束,會顯示當前測速的結果,網速峰值折線圖、以及其他信息,如圖:
⑥ android怎麼計算每秒鍾的上傳和下載速度
計算的下載速度,舉例說明一下吧。
例如每隔N秒就改變當前下載速度數字的,回N秒前的下載進答度百分比m%,
N秒後的下載進度百分比n%,當前下載問題的總大小Size【換算成多少kb】
(m%-n%)*Size/N就是 這段時間的下載或上傳速度了。
注意:記得增加判斷一些邊界問題。
⑦ 安卓手機怎樣可以檢測出來我實際收到的網速是多少最大網速可以是多少
手機有自帶分組數據計數器,可以查詢使用流量,但是不直觀。 很多殺毒軟體都帶流量統計功能,還可以設置流量攔截功能,翻一個網頁用多少流量都可以知道,360殺毒軟體、 AVG殺毒軟體、 其他殺毒軟體都有著功能。 不用去找手機軟體流量統計軟體,只能說浪費手機內存,軟體安裝多了影響手機速度。
⑧ 安卓7.0怎麼顯示實時網速
1、打開手機桌面找到【設置】圖標進入手機設置。
⑨ android如何實現實時獲取當前網路帶寬
android如何實現實時獲取當前網路帶寬
/**
* 檢查當前網路是否可用
*
* @param context
* @return
*/
public boolean isNetworkAvailable(Activity activity) {
Context context = activity.getApplicationContext();
// 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return false;
} else {
// 獲取NetworkInfo對象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
if (networkInfo != null && networkInfo.length > 0) {
for (int i = 0; i < networkInfo.length; i++) {
// System.out.println(i + "===狀態==="
// + networkInfo[i].getState());
// System.out.println(i + "===類型==="
// + networkInfo[i].getTypeName());
// 判斷當前網路狀態是否為連接狀態
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}