获取网络类型及信号强弱

这里网络类型只获取4G跟wifi,废话不多说,直接上代码

JAVA层获取网络类型及信号强

//加载所需的包import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.telephony.TelephonyManager;import android.telephony.PhoneStateListener;import android.telephony.SignalStrength;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.content.IntentFilter;//网络状态强度public static final int NETLEVEL_STRENGTH_NONE_OR_UNKNOWN = 0;public static final int NETLEVEL_STRENGTH_POOR = 1;public static final int NETLEVEL_STRENGTH_MODERATE = 2;public static final int NETLEVEL_STRENGTH_GOOD = 3;public static final int NETLEVEL_STRENGTH_GREAT = 4;/*获取wifi信号*/private static WifiManager wifiManager = null;private static WifiInfo wifiInfo = null;public static int wifiLevel;public static int singnalLevel;//信号监听TelephonyManager        Tel;MyPhoneStateListener    MyListener;public static ConnectivityManager connManager;

在onCreate等方法中添加监听:

//@mao 信号强度监听MyListener = new MyPhoneStateListener();Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);//添加wifi强度监听wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);initHandler();
@Overrideprotected void onResume() {     super.onResume();getURLData();mWakeLock.acquire(); setIntent(null);}@Overrideprotected void onPause() {     mWakeLock.release();super.onPause();}

获取信息代码:

//获取wifi强度public static int getSingnalLevel() {     return singnalLevel;}//获取wifi强度  public static int getWifiLevel() {         wifiInfo = wifiManager.getConnectionInfo();          int wifiStrength = wifiInfo.getRssi();    if (wifiStrength <= 0 && wifiStrength >= -50) {             wifiLevel = NETLEVEL_STRENGTH_GREAT;    } else if (wifiStrength < -50 && wifiStrength >= -70) {             wifiLevel = NETLEVEL_STRENGTH_GOOD;     } else if (wifiStrength < -70 && wifiStrength >= -80) {             wifiLevel = NETLEVEL_STRENGTH_MODERATE;    } else if (wifiStrength < -80 && wifiStrength >= -100) {             wifiLevel = NETLEVEL_STRENGTH_POOR;     } else {             wifiLevel = NETLEVEL_STRENGTH_NONE_OR_UNKNOWN;     }     return wifiLevel;  }//获取信号强度   public static int getNetInfo(){       NetworkInfo mobNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);          NetworkInfo wifiNetInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);        if(!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()){        netLevel =  0;   }   else  {      netLevel = getWifiLevel(); if(netLevel == 0) netLevel = getSingnalLevel()+10;  } return netLevel;//netInfo;}    // @mao 信号private class MyPhoneStateListener extends PhoneStateListener {     public void onSignalStrengthsChanged(SignalStrength signalStrength) {     super.onSignalStrengthsChanged(signalStrength);int asu = signalStrength.getGsmSignalStrength();if (asu <= 2 || asu == 99) singnalLevel = NETLEVEL_STRENGTH_GOOD;else if (asu >= 12) singnalLevel = NETLEVEL_STRENGTH_GREAT;else if (asu >= 8)  singnalLevel = NETLEVEL_STRENGTH_GOOD;else if (asu >= 5)  singnalLevel = NETLEVEL_STRENGTH_MODERATE;else singnalLevel = NETLEVEL_STRENGTH_GOOD;}};

更多相关文章

  1. android将InputStream转为FileOutputStream保存HttpURLConnectio
  2. Android音频开发之使用OpenSL ES API
  3. Android(安卓)Storage Manager 处理
  4. Android(安卓)几种常用关于屏幕操作的方法(获取屏幕大小,全屏,显示
  5. Android(安卓)Studio TCP IP 服务器和客户端建立
  6. java获取http:图片下载代码——android基础编
  7. android实用技巧:android实现listview异步加载图片
  8. 【Android】获取设备标识号
  9. DTMF信号处理

随机推荐

  1. LinearLayout(线性布局)
  2. android调用系统资源裁剪图片
  3. Android扫描和生成二维码
  4. Android中使用Bezier曲线
  5. android截屏并通过邮件发送
  6. 保存图像到相册
  7. Android下拉刷新列表库PullToRefresh的使
  8. android 单元测试
  9. Android(安卓)GPS Location学习一
  10. android 调用系统相册并得到图片地址