如何在我的Android应用程序中确定Internet速度
作者:互联网
在我的应用程序中,我希望当我单击一个按钮时,它会向我显示确切的互联网速度.
我已经阅读了有关此问题的所有答案,该问题已在此链接determining internet speed in android,Calculating Internet Speed in android,Internet Speed in android programming等中提出.
但我没有完全找到答案.我用过这个:
WifiInfo.getLinkSpeed()
但它显示了最高速度.我也使用这个代码:
TrafficStats
但它对我没有用.我需要显示我的网络速度(即100 kbps).我怎样才能做到这一点?
请帮我.
解决方法:
要首先确定Android应用程序中的Internet速度,您需要从onlineserver下载一些文件.
为什么我们需要下载文件?检查互联网下载速度的平均值.
为此你需要像这样编码
private class InternetSpeedTest
extends AsyncTask<String, Void, String> {
long startTime;
long endTime;
private long takenTime;
@Override
protected String doInBackground(String... paramVarArgs) {
startTime = System.currentTimeMillis();
Log.d(TAG, "doInBackground: StartTime" + startTime);
Bitmap bmp = null;
try {
URL ulrn = new URL(paramVarArgs[0]);
HttpURLConnection con = (HttpURLConnection) ulrn.openConnection();
InputStream is = con.getInputStream();
bmp = BitmapFactory.decodeStream(is);
Bitmap bitmap = bmp;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 99, stream);
byte[] imageInByte = stream.toByteArray();
long lengthbmp = imageInByte.length;
if (null != bmp) {
endTime = System.currentTimeMillis();
Log.d(TAG, "doInBackground: EndTIme" + endTime);
return lengthbmp + "";
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
if (result != null) {
long dataSize = Integer.parseInt(result) / 1024;
takenTime = endTime - startTime;
double s = (double) takenTime / 1000;
double speed = dataSize / s;
Log.d(TAG, "onPostExecute: " + "" + new DecimalFormat("##.##").format(speed) + "kb/second");
}
}
在此代码中将从Here下载图片
在doInBackground中,您将在此处完成下载后计算Image的大小
Bitmap bitmap = bmp;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 99, stream);
byte[] imageInByte = stream.toByteArray();
long lengthbmp = imageInByte.length
最后一件事是通过减去endtime表单开始时间来计算takenTime,速度是(size / takenTime)
我希望这个对你有用
标签:android,mobile,wifi,monitor,wifimanager 来源: https://codeday.me/bug/20190623/1268032.html