关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子

 一.检测手机信号强度

    检测手机信号强度需要用到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那信号就很差了

源码在我的资源里面,要一起学习的同学可以去下载,写的很乱。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值