android獲取實時網速
① android怎樣獲取網路速度
大部分系統是支持在狀態欄顯示實時網速的,像小米之類的都可以直接設置顯示實時網速。部分廠商的系統沒有這個功能可以通過第三方插件的懸浮窗來顯示。
② 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;
}
③ 如何獲取到當前手機實時網速
oppo進入設置--通知與狀態欄--顯示實時網速,打開後即可在狀態欄顯示當前手機使用的網速。
註:打開此選項後,就不能顯示運營商名稱。
④ 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);
}
}
⑤ java如何獲得當前的網路傳輸速度
1. JAVA還沒有API可以做到。
2. 可以通過腳本等到主機的網路流量:windown使用wmi,linux使用命令(watch -n 1 "/sbin/ifconfig eth0 | grep bytes")。
3. 另外就是SNMP協議,通過對於的MID獲得主機或者網路設備的流量。
java有個開源的實現叫做SNMP4J,你可以google 「SNMP4J 網路流量」搜索到大量信息。(
使用SNMP輪詢做實事流量監控的頻率不要太高,否則會有負載問題。)
⑥ 求安卓系統網速實時檢測軟體
手機有自帶分組數據計數器,可以查詢使用流量,但是不直觀。
很多殺毒軟體都帶流量統計功能,還可以設置流量攔截功能,翻一個網頁用多少流量都可以知道,360殺毒軟體、
AVG殺毒軟體、
其他殺毒軟體都有著功能。
不用去找手機軟體流量統計軟體,只能說浪費手機內存,軟體安裝多了影響手機速度。
⑦ 安卓7.0怎麼顯示實時網速
1、打開手機桌面找到【設置】圖標進入手機設置。
⑧ 安卓上有什麼好用的實時網速顯示 app
通知欄顯示網速 安卓版
特點1.支持所有網路和Wifi網路2.支持多種模式顯示.3.支持開機啟動服務監測.4.佔用資源少,真正為用戶節省內存與CPU.5.支持文字大小,顏色設置.6.支持自定義懸浮窗背景.無網路時隱藏7.支持拖動模式,喜歡放那裡就那裡.
⑨ 有什麼應用能夠顯示當前各個應用的實時網速,主要是想看哪個應用在用網,網速多少。。安卓的
到目前為止還沒有。等待軟體工程師們開發吧
⑩ 求一個查看安卓手機實時流量的軟體,就是那種能實時查看某個軟體實時網路速度的軟體
我的是華為手機,用的lbe安全大師,點擊懸浮窗可以看到各個應用的實時網速。但是自從emui4.0之後就無法正確顯示應用的實時網速了,所有的都是0B/s,只能顯示總網速,坑死爹了。如果你找到了更好的此類軟體還望分享哈~~