日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From: http://blog.csdn.net/wanglj0925/article/details/7743182

一.檢測手機信號強度

? ? 檢測手機信號強度需要用到TelephonyManager類 這個類主要提供了一系列用于訪問與手機通訊相關的狀態和信息的get方法。其中包括手機SIM的狀態和信息、電信網絡的狀態及手機用戶的信息。在應用程序中可以使用這些get方法獲取相關數據。還有監聽手機內部的狀態PhoneStateListener類,主要監聽手機的服務的狀態、信號強度、消息等待指示(語音信箱)、通話轉移、呼叫狀態、設備單元位置、數據連接狀態、數據流量方向

? ? 1.初始化TelephonyManager得到對象

[java] view plaincopy
  • telephonyManager?=?(TelephonyManager)?getSystemService(Context.TELEPHONY_SERVICE);??
  • ? ? 2.監聽手機內部狀態

    [java] view plaincopy
  • 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.設置監聽

    [java] view plaincopy
  • telephonyManager.listen(pStateListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);??
  • 這樣就能得到手機的信號強度了,當然還有關于手機一些其他的信息也可以通過 TelephonyManager的get方法得到。

    二.檢測wifi信號強度

    ? ?獲取wifi信號強度要用到的類有WifiManager和WifiInfo

    ? ?1.初始化WifiManager得到對象

    [java] view plaincopy
  • wifiManager?=?(WifiManager)?getSystemService(WIFI_SERVICE);??
  • ? ?2.通過 WifiManager對象得到WifiInfo對象

    [java] view plaincopy
  • WifiInfo?mWifiInfo?=?wifiManager.getConnectionInfo();??
  • ? ?3.獲取wifi信號強度

    [java] view plaincopy
  • wifiDec?=?mWifiInfo.getRssi();??

  • 三.獲取周圍的wifi熱點

    ? 首先我們要獲取wifi熱點時必須保證手機的wifi開關已經打開,這里先用判斷wifi的狀態

    ? 通過wifiManager.getWifiState()來獲取wifi的當前狀態,返回的是一個int值,1代表當前狀態不可用,3代表可用

    ? 如果當前wifi開關為關閉時設置wifiManager.setWifiEnabled(true);為true時便可打開wifi開關

    ? 獲取周圍的wifi熱點,它是一個List集合List<ScanResult>。

    [java] view plaincopy
  • List<ScanResult>?scanResultsList?=?wifiManager.getScanResults();??
  • ? 這樣就得到了周圍wifi熱點的一個List集合,顯示到listview就好了

    ?四.實現效果圖

    ? ? wifi開關沒有打開時

    ? ??

    ? ?有可用的wifi時

    ? ??

    最后說明下如果你的wifi信號強度大于-70表示還不錯,小于-70那信號就很差了

    源碼在我的資源里面,要一起學習的同學可以去下載,寫的很亂。


    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。