android-如何在应用程序中获取网络强度?

问题描述

如何在应用程序中获取网络强度?
我想在手机设备中显示网络的网络强度。
现在我可以检查到 wifi 的连接。但是我需要知道网络信号强度,我要在下面的代码基础上再添加什么代码?

ConnectivityManager connectivityManager = (ConnectivityManager) context                .getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo activeNetInfo = connectivityManager                .getActiveNetworkInfo();        NetworkInfo mobNetInfo = connectivityManager                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);           TextView netStatus = (TextView) findViewById(R.id.netStatus);        if (activeNetInfo != null) {            netStatus.setText("" Connection Status - Connected ""+activeNetInfo.getTypeName());        } else if (mobNetInfo != null) {            netStatus.setText("" Connection Status - Connected ""+mobNetInfo.getTypeName());        } else {            netStatus.setText("" Connection Status - Not Connected "");        }

解决方案

使用下面的代码:

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);    NetworkInfo Info = cm.getActiveNetworkInfo();    if (Info == null || !Info.isConnectedOrConnecting()) {        Log.i(TAGNo connection"");    } else {        int netType = Info.getType();        int netSubtype = Info.getSubtype();        if (netType == ConnectivityManager.TYPE_WIFI) {            Log.i(TAGWifi connection"");            WifiManager wifiManager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE);            List<ScanResult> scanResult = wifiManager.getScanResults();            for (int i = 0; i < scanResult.size(); i++) {                Log.d(""scanResult""Speed of wifi""+scanResult.get(i).level);//The db level of signal             }            // Need to get wifi strength        } else if (netType == ConnectivityManager.TYPE_MOBILE) {            Log.i(TAGGPRS/3G connection"");            // Need to get differentiate between 3G/GPRS        }    }

解决方案二:

wifi的信号强度可以这样获取mWifiManager =(WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);mWifiManager.getConnectionInfo().getRssi()对应的就是下面两个方法 public WifiInfo getConnectionInfo() {        try {            return mService.getConnectionInfo();        } catch (RemoteException e) {            return null;        }  }    public int getRssi() {        return mRssi;    }
时间: 2024-11-03 00:54:20

android-如何在应用程序中获取网络强度?的相关文章

Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)_Android

本文实例讲述了Android开发之在程序中时时获取logcat日志信息的方法.分享给大家供大家参考,具体如下: 今天分享一个在软件开发中很实用的例子,也是这几天在通宵加班中我使用的一个小例子, 在程序中监听Log信息. 为什么说它实用?原因是Android的开发厂商各种修改之后手机和手机之间以后存在很多差异.比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问.这样就给开发适配带来了巨大的麻烦.本来

如何在Silverlight应用程序中获取ASP.NET页面参数

概述 在开发Silverlight应用程序时,我们经常会遇到这样一种情况,需要在Silverlight应用程序的 UserControl中获取ASP.NET页面参数,这个参数不一定来自于当前Silverlight应用程序的宿主页面,而 有可能来自于其它的ASP.NET页面. 需求 如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面 ,并且需要在SilverlightTestPage.aspx页面所宿主的Silverligh

android开发如何在程序中设置双卡手机来电铃声

问题描述 android开发如何在程序中设置双卡手机来电铃声 如题,对单卡手机的我知道. 就是不知道双卡手机有没有什么不一样的地方. 解决方案 http://www.android-study.net/listxx.aspx?id=658 这个博客 写的还不错

ios-急急急!!!!iOS如何在程序中获取到手机日历中的日程关键字信息,求大神解救

问题描述 急急急!!!!iOS如何在程序中获取到手机日历中的日程关键字信息,求大神解救 急急急!!!!iOS如何在程序中获取到手机日历中的日程关键字信息,求大神解救 急急急!!!!iOS如何在程序中获取到手机日历中的日程关键字信息,求大神解救 解决方案 http://download.csdn.net/download/rlk5h/8376341

nginx反向代理tomcat,但是tomcat的程序中获取不到session?

问题描述 nginx反向代理tomcat,但是tomcat的程序中获取不到session? 浏览器打开nginx地址,代理到了tomcat,但是程序中却获取不到session,请问该如何配置.通过nginx访问就没有session 解决方案 http://blog.itpub.net/27043155/viewspace-733713/

web程序中映射网络驱动器 一直返回2202 求助到底哪里出了问题

问题描述 web程序中映射网络驱动器一直返回2202求助到底哪里出了问题 解决方案 解决方案二:usingSystem.Runtime.InteropServices;usingSystem.IO;usingSystem;publicclassWNetHelper{[DllImport("mpr.dll",EntryPoint="WNetAddConnection2")]privatestaticexternuintWNetAddConnection2(NetRes

Android编程实现在一个程序中启动另一个程序的方法

本文实例讲述了Android编程实现在一个程序中启动另一个程序的方法.分享给大家供大家参考,具体如下: Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEG

windows应用程序中获取控制台输出信息

问题描述 我在一个C#Windows应用程序中启动一个控制台程序,这个控制台程序输了很多信息我怎么才能在C#windows应用程序中获得这些信息 解决方案 解决方案二:是不是什么重定向??学习解决方案三:专业接分,参考http://blog.csdn.net/jinjazz/archive/2008/05/07/2413039.aspx解决方案四:引用2楼jinjazz的回复: 专业接分,参考http://blog.csdn.net/jinjazz/archive/2008/05/07/2413

linux c程序中获取shell脚本输出的实现方法_C 语言

1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p