关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子
2012-07-13 11:34
609 查看
一.检测手机信号强度
检测手机信号强度需要用到TelephonyManager类 这个类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。还有监听手机内部的状态PhoneStateListener类,主要监听手机的服务的状态、信号强度、消息等待指示(语音信箱)、通话转移、呼叫状态、设备单元位置、数据连接状态、数据流量方向。
1.初始化TelephonyManager得到对象
3.设置监听
二.检测wifi信号强度
获取wifi信号强度要用到的类有WifiManager和WifiInfo
1.初始化WifiManager得到对象
三.获取周围的wifi热点
首先我们要获取wifi热点时必须保证手机的wifi开关已经打开,这里先用判断wifi的状态
通过wifiManager.getWifiState()来获取wifi的当前状态,返回的是一个int值,1代表当前状态不可用,3代表可用
如果当前wifi开关为关闭时设置wifiManager.setWifiEnabled(true);为true时便可打开wifi开关
获取周围的wifi热点,它是一个List集合List<ScanResult>。
四.实现效果图
wifi开关没有打开时
有可用的wifi时
最后说明下如果你的wifi信号强度大于-70表示还不错,小于-70那信号就很差了
源码在我的资源里面,要一起学习的同学可以去下载,写的很乱。
检测手机信号强度需要用到TelephonyManager类 这个类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。还有监听手机内部的状态PhoneStateListener类,主要监听手机的服务的状态、信号强度、消息等待指示(语音信箱)、通话转移、呼叫状态、设备单元位置、数据连接状态、数据流量方向。
1.初始化TelephonyManager得到对象
telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);2.监听手机内部状态
PhoneStateListener pStateListener = new PhoneStateListener() { @Override public void onSignalStrengthChanged(int asu) { // TODO Auto-generated method stub super.onSignalStrengthChanged(asu); //Log.d("ok", ""+asu); } @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { // TODO Auto-generated method stub super.onSignalStrengthsChanged(signalStrength); if (signalStrength.isGsm()) { //得到手机G网信号强度值 signalDec = signalStrength.getGsmSignalStrength(); } } };
3.设置监听
telephonyManager.listen(pStateListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);这样就能得到手机的信号强度了,当然还有关于手机一些其他的信息也可以通过TelephonyManager的get方法得到。
二.检测wifi信号强度
获取wifi信号强度要用到的类有WifiManager和WifiInfo
1.初始化WifiManager得到对象
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);2.通过WifiManager对象得到WifiInfo对象
WifiInfo mWifiInfo = wifiManager.getConnectionInfo();3.获取wifi信号强度
wifiDec = mWifiInfo.getRssi();
三.获取周围的wifi热点
首先我们要获取wifi热点时必须保证手机的wifi开关已经打开,这里先用判断wifi的状态
通过wifiManager.getWifiState()来获取wifi的当前状态,返回的是一个int值,1代表当前状态不可用,3代表可用
如果当前wifi开关为关闭时设置wifiManager.setWifiEnabled(true);为true时便可打开wifi开关
获取周围的wifi热点,它是一个List集合List<ScanResult>。
List<ScanResult> scanResultsList = wifiManager.getScanResults();这样就得到了周围wifi热点的一个List集合,显示到listview就好了
四.实现效果图
wifi开关没有打开时
有可用的wifi时
最后说明下如果你的wifi信号强度大于-70表示还不错,小于-70那信号就很差了
源码在我的资源里面,要一起学习的同学可以去下载,写的很乱。
相关文章推荐
- 关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- 通过OpenNetCF来获取周围的Wifi设备以及信号强度
- 数组不是指针——数组地址不能动态分配空间,一个小例子关于指针移动,以及malloc
- android WIFI 信号强度检测
- Mac OS X Lion 系统中检测 WiFi 信号强度
- android手机 - 关于信号强度的问题
- 一个关于静态局部变量以及全局变量的例子
- 安卓检测wifi网络状态以及强度,及检测电量。
- Android手机信号强度检测详细介绍
- 如何获取iphone基带芯片工作时候获取到的一些参数呢,如信号强度,小区,周围小区以及一些更深入的参数,有人了解吗
- 如何把Android手机变成一个WIFI下载热点? — 报文转发及DNS报文拦截
- 把无线wifi或手机热点信号转成有线信号的路由器中继设置方法
- [置顶] yjh的实习生涯之自动化测试(2)---新建一个自动登录淘宝例子以及如何将java代码运行到手机上
- android里获取周围所有wifi ap 的信号强度的方法
- 关于手机信号强度单位db和dBm
- 手机信息的获取(手机IMEI,手机sim卡的IMSI,网络类型(WiFi,LTE(即4G)等),信号强度(蜂窝网络非WiFi),经纬度)
- 如何用wifi-linux检测AP信号强度
- 怎样用笔记本的无线网卡做一个AP 实现笔记本做wifi热点供手机、平板电脑wifi上网而不用无线路由器