• Android判断网络类型


    一.判断网络是否连接通

    首先我们需要在AndroidManifest.xml文件中加入相应的权限。

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    (ps:更多权限请查看我的博客http://www.cnblogs.com/zhaoyucong/p/6086687.html)

    MainActivity.java

     1 public class MainActivity extends Activity {
     2     
     3     private Button but;//定义Button变量保存按钮控件
     4     
     5     @Override
     6     protected void onCreate(Bundle savedInstanceState) {
     7         super.onCreate(savedInstanceState);
     8         setContentView(R.layout.activity_main);
     9         but = (Button) findViewById(R.id.but);//通过id找到按钮控件
    10         but.setText("网络测试");//修改按钮内容
    11         but.setOnClickListener(new OnClickListener() {
    12 
    13 //匿名内部类 14 public void onClick(View v) { 15 //检查用户的网络情况 16 ConnectivityManager mConnectivityManager =
    17           (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); 18 //返回当前可用网络信息 19 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); 20 21 if(mNetworkInfo!=null){ 22 Toast.makeText(MainActivity.this,"网络正常",Toast.LENGTH_SHORT).show(); 23 }else{ 24 Toast.makeText(MainActivity.this,"无网络",Toast.LENGTH_SHORT).show(); 25 } 26 } 27 }); 28 } 29 }

     二.判断网络类型

    MainActivity.java

    1 //返回当前可用网络信息  
    2 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); 
    3 //mNetworkInfo.getTypeName()返回对应的网络类型名称
    mNetworkInfo.getTypeName()方法的名称有如下5种网络类型:
    MOBILE、WIFI 互联网
    WIMAX 微波存取全球互通
    ETHERNET 以太网
    BLUETOOTH 蓝牙

     三.判断网络是(2G/3G/4G)

     MainActivity.java

    1 TelephonyManager telephonyManager = (TelephonyManager)MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.getNetworkType()方法返回的是个数值
    以下是各种网络类型:
    2G:
    TelephonyManager.NETWORK_TYPE_GPRS
    TelephonyManager.NETWORK_TYPE_EDGE
    TelephonyManager.NETWORK_TYPE_CDMA
    TelephonyManager.NETWORK_TYPE_1xRTT
    TelephonyManager.NETWORK_TYPE_IDEN
    telephonyManager.getNetworkType()//api<9 : replace by 14
    3G
    TelephonyManager.NETWORK_TYPE_UMTS
    TelephonyManager.NETWORK_TYPE_EVDO_0
    TelephonyManager.NETWORK_TYPE_EVDO_A
    TelephonyManager.NETWORK_TYPE_HSDPA
    TelephonyManager.NETWORK_TYPE_HSUPA
    TelephonyManager.NETWORK_TYPE_HSPA
    TelephonyManager.NETWORK_TYPE_EVDO_B//api<9 : replace by 14
    TelephonyManager.NETWORK_TYPE_EHRPD//api<11 : replace by 12
    TelephonyManager.NETWORK_TYPE_HSPAP//api<13 : replace by 15
    4G
    TelephonyManager.NETWORK_TYPE_LTE//api<11 : replace by 13
     
  • 相关阅读:
    收听网络状态广播
    常用工具类
    BroadcastReceiver study
    NIO2
    ip route,ip rule, iptables和docker的端口映射
    Hystrix使用小结
    mysql CPU占用高
    mysql隔离级别与锁,接口并发响应速度的关系(2)
    TOMCAT调优内容
    jvm 锁Lock
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6085893.html
Copyright © 2020-2023  润新知