zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    jenkins代码自动部署
    jenkins安装
    git图形管理工具
    gitlab自动备份恢复与卸载
    linux下获取外网IP
    网站安全webshell扫描
    jQuery动画效果实现
    form表单中的enctype属性什么意思?
    你那么努力又怎么样!
    话语
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6085893.html
Copyright © 2011-2022 走看看