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
     
  • 相关阅读:
    cloudstack secondary vm starting
    什么东西有机会
    ansible 远程以普通用户执行命令
    python 爬虫--同花顺-使用代理
    python3 Beautifulsoup <class 'bs4.element.ResultSet'> <class 'bs4.element.Tag'> 取值
    python3 raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbid
    kubernetes 生命周期问题分析
    'utf-8' codec can't decode byte 0xbc in position 1182: invalid start byte
    找回Firefox4的状态栏!Status-4-Evar扩展
    生命周期和Zend引擎
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6085893.html
Copyright © 2011-2022 走看看