Android判断是Wifi还是4G网络代码

本文实例为大家分享了Android判断是Wifi还是4G网络的具体代码,供大家参考,具体内容如下

package com.chengxinet.bobo.utils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;

/**
 * Created by Administrator on 2016/1/7.
 */
public class NetworkUtils {
  public static boolean isNetworkAvailable(Context c) {
    Context context = c.getApplicationContext();
    // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivityManager == null) {
      return false;
    } else {
      // 获取NetworkInfo对象
      NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

      if (networkInfo != null && networkInfo.length > 0) {
        for (NetworkInfo aNetworkInfo : networkInfo) {
//          System.out.println(i + "===状态===" + networkInfo[i].getState());
//          System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
          // 判断当前网络状态是否为连接状态
          if (aNetworkInfo.getState() == NetworkInfo.State.CONNECTED) {
            return true;
          }
        }
      }
    }
    return false;
  }

  /**
   * 判断WIFI是否打开
   * @param context
   * @return
   */
  public static boolean isWifiEnabled(Context context) {
    ConnectivityManager mgrConn = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager mgrTel = (TelephonyManager) context
        .getSystemService(Context.TELEPHONY_SERVICE);
    return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
        .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
        .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
  }

  /**
   * 判断是否是3G网络
   * @param context
   * @return
   */
  public static boolean is3rd(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkINfo = cm.getActiveNetworkInfo();
    if (networkINfo != null
        && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
      return true;
    }
    return false;
  }

  /**
   * 判断是wifi还是3g网络
   * @param context
   * @return
   */
  public static boolean isWifi(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkINfo = cm.getActiveNetworkInfo();
    if (networkINfo != null
        && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
      return true;
    }
    return false;
  }
}

以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。

(0)

相关推荐

  • Android连接指定Wifi的方法实例代码

    本篇文章主要记录一下Android中打开Wifi.获取Wifi接入点信息及连接指接入点的方法. 自己写的demo主要用于测试接口的基本功能,因此界面及底层逻辑比较粗糙. demo的整体界面如下所示: 上图中的OPEN按键负责开启Wifi: GET按键负责获取扫描到的接入点信息. 当获取到接入点信息后,我选取了其中的名称及信号强度,以列表的形式显示在主界面下方,如下图: 当点击列表中的Item时,就会去连接对应的接入点. 自己的逻辑比较简单,测试时的代码,假定连接的是不许要密码或密码已知的接入点.

  • Android开发之Wifi基础教程

    本文实例讲述了Android开发Wifi的基础知识.分享给大家供大家参考.具体如下: Android提供了WifiManager这个类,通过这个类可以进行wifi相关的各种操作. 通过 wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE) 可获取该类的实例. 1. 获取wifi开启状态 (只要手机的wifi打开了,即认为是开启状态,而与是否连接了某个wifi无关): boolean isOpen = wifiMana

  • Android自定义View展示Wifi信号强弱指示方法示例

    前言 最近因为工作的需要,要自定义展示Wifi信号强弱的需要,就通过利用系统广播的方式实现了一个自定义View--WifiStateView,下面话不多说了,感兴趣的朋友们一起来看看详细的介绍吧. 实现的效果图如下所示: 用不同的图片来表示Wifi信号的强弱,可以自定义Wifi信号等级 图标简陋了点,根据需要来替换即可 /** * 作者: 叶应是叶 * 时间: 2017/8/22 18:25 * 描述: */ public class WifiStateView extends AppCompa

  • ubuntu用wifi连接android调试程序的步骤

    注:如果没有 root 权限也是可以试试,一般情况下,都需要 root 权限,才能连接成功. 1.需要确保你的开发 PC 和 Android 手机都连上了 wifi 并处于同一网段下:2.开启 usb 调试,且用 usb 将 Android 设备连接到开发 PC 上:3.进入到你的 Android SDK 的 platform-tools 目录下,执行如下命令来重启 Android 设备中的 adbd 后台程序重新侦听 TCP 的指定端口:$./adb tcpip 5555注:5555 是默认端

  • Android wifi 调试详解及简单实例

    Android wifi 调试 前言: 做android开发的时候,经常遇到的一个问题就是真机调试次数多了,会导致usb口,损坏,而且长期给手机充电也会损坏手机,所以我想了想是否可以拿usb调试,网上找了下,还真可以,但都写的比较繁琐,今天我们就使用3条命令完成任务 首先我们需要使用的工具是adb,它基于tcp协议之上 1.开始我们需要给手机开启tcpip模式,这个时候需要usb线连接手机 adb tcpip 端口号(随便写个大点的比如:5555) 写完这个之后,usb就没用了 2.你需要查看你

  • android wifi信号强度等级区分的修改介绍

    /frameworks/base/wifi/java/android/net/wifi/wifimanager.java calculateSignalLevel为计算信号等级函数,MAX_RSSI和MIN_RSSI分别为最强和最弱信号强度等级的信号强度阀值.

  • android开发教程之wifi开发示例

    1. WIFI网卡的状态WIFI网卡的状态信息都以整型变量的形式存放在 android.net.wifi.WifiManager 类中,有以下状态:WIFI_STATE_DISABLEDWIFI网卡不可用WIFI_STATE_DISABLINGWIFI网卡正在关闭WIFI_STATE_ENABLEDWIFI网卡可用WIFI_STATE_ENABLINGWIFI网卡正在打开WIFI_STATE_UNKNOWNWIFI网卡状态未知2. 操作WIFI 网卡所需的权限CHANGE_NETWORK_STA

  • Android获取当前已连接的wifi信号强度的方法

    本文实例讲述了Android获取当前已连接的wifi信号强度的方法,是Android程序开发中非常常见的重要技巧.分享给大家供大家参考之用.具体方法如下: 1.得到当前已连接的wifi信息 WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifi_service.getConnectionInfo(); 其中wifiInfo有以下的方法: wifiinfo.ge

  • 在Android里完美实现基站和WIFI定位

    不过其实只要明白了基站/WIFI定位的原理,自己实现基站/WIFI定位其实不难.基站定位一般有几种,第一种是利用手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转所需要时间来算出手机所在的坐标:第二种则是利用获取最近的基站的信息,其中包括基站id,location area code.mobile country code.mobile network code和信号强度,将这些数据发送到google的定位web服务里,就能拿到当前所在的位置信息,误差一般在

  • Android判断是Wifi还是4G网络代码

    本文实例为大家分享了Android判断是Wifi还是4G网络的具体代码,供大家参考,具体内容如下 package com.chengxinet.bobo.utils; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.telephony.TelephonyManager; /** * Created by Ad

  • Android判断用户2G/3G/4G移动数据网络

    在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据. 通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,

  • Android编程实现wifi扫描及连接的方法

    本文实例讲述了Android编程实现wifi扫描及连接的方法.分享给大家供大家参考,具体如下: 主界面,搜索附近WIFI信息 /** * Search WIFI and show in ListView * */ public class MainActivity extends Activity implements OnClickListener, OnItemClickListener { private Button search_btn; private ListView wifi_l

  • Android判断用户的网络类型实例讲解(2/3/4G、wifi)

    很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑.但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下. 一加手机一代,移动4G 网络,得到的subtype类型值为17,我查过Android 5.1的源码,它最大的值也就为16. 我拿魅族的移动4G测试的结果如下: 小米4,电信4G的测试结果如下: 魅族MX4,联通3G 还测试了其它华为移动3G/4G的情况,就我自己的手机一加返回的值有点奇怪,之后我查了一下它的参数: 当然,其它厂商:华为.小米.魅族与上面显示的网

  • Android判断wifi是5G还是2.4G

    我一开始看这帖子,找不到答案,为了后来的人,我来回复吧. WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 根据wifiInfo.getFrequency()可以判断是不是5G 应该将会返回4个数字 2字开头的话,就系2.4G:5字开头的话,就系5G. 最好用第一个数字来判断,而不要

  • Android判断网络类型的方法(2g,3g还是wifi)

    本文实例讲述了Android判断网络类型的方法.分享给大家供大家参考,具体如下: 判断网络类型是wifi,还是3G,还是2G网络,对不同的网络进行不同的处理,现将判断方法整理给大家,以供参考 说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时手上没有电信的卡,所以没有验证,有电信手机的同事,可以验证一下,验证后将结果发送给大家. ConnectivityManager connectMgr = (ConnectivityManager) this .getSystem

  • Android判断网络状态的代码

    本文实例为大家分享了Android判断网络状态的具体代码,供大家参考,具体内容如下 一.权限 需要在AndroidManifest.xml 添加访问权限 <usespermissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> 二.判断连接状态 /**

  • Android 判断网络状态实例详解

    Android 判断网络状态实例详解 实例代码 package com.example.android; import java.io.IOException; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.URL; import java.util.

  • Android判断设备网络连接状态及判断连接方式的方法

    本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情.这些功能都写在了下面的代码中了!请看主要代码如下: /** * 检测网络是否连接 * @return *

随机推荐