zoukankan      html  css  js  c++  java
  • android中检測网络连接状态简单总结

    相应差点儿没有不跟网络打交道的android应用,那么在实际中就需求检測手机是否有网络连接。甚至须要推断是何种方式连接,这样能给用户带来更好的体验和一些使用指导,以下给出一些经常使用的推断。假设要知道是否有网络、以及是採用wifi连接的还是3G连接的。调用以下相应方法模型就OK了。代码例如以下:
    TestNetworkActivity:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    package com.home.testnetwork; 
       
    import java.util.List; 
       
    import android.app.Activity; 
    import android.content.Context; 
    import android.location.LocationManager; 
    import android.net.ConnectivityManager; 
    import android.net.NetworkInfo; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.EditText; 
       
    public class TestNetworkActivity extends Activity implements OnClickListener { 
        private Button checkBtn; 
        private EditText netText; 
        private EditText wifiText; 
        private EditText net3gText; 
        private EditText gpsText; 
       
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
            checkBtn = (Button) findViewById(R.id.main_btn_check); 
            checkBtn.setOnClickListener(this); 
            wifiText = (EditText) findViewById(R.id.main_et_wifi); 
            net3gText = (EditText) findViewById(R.id.main_et_3g); 
            gpsText = (EditText) findViewById(R.id.main_et_GPS); 
            netText = (EditText) findViewById(R.id.main_et_net); 
        
       
        /**
         * 检測网络是否连接
         
         * @return
         */ 
        private boolean isNetConnected() { 
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
            if (cm != null) { 
                NetworkInfo[] infos = cm.getAllNetworkInfo(); 
                if (infos != null) { 
                    for (NetworkInfo ni : infos) { 
                        if (ni.isConnected()) { 
                            return true
                        
                    
                
            
            return false
        
       
        /**
         * 检測wifi是否连接
         
         * @return
         */ 
        private boolean isWifiConnected() { 
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
            if (cm != null) { 
                NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 
                if (networkInfo != null 
                        && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { 
                    return true
                
            
            return false
        
       
        /**
         * 检測3G是否连接
         
         * @return
         */ 
        private boolean is3gConnected() { 
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
            if (cm != null) { 
                NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 
                if (networkInfo != null 
                        && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 
                    return true
                
            
            return false
        
       
        /**
         * 检測GPS是否打开
         
         * @return
         */ 
        private boolean isGpsEnabled() { 
            LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
            List<String> accessibleProviders = lm.getProviders(true); 
            for (String name : accessibleProviders) { 
                if ("gps".equals(name)) { 
                    return true
                
            
            return false
        
       
        @Override 
        public void onClick(View v) { 
            if (v == checkBtn) { 
                netText.setText(isNetConnected() + ""); 
                wifiText.setText(isWifiConnected() + ""); 
                net3gText.setText(is3gConnected() + ""); 
                gpsText.setText(isGpsEnabled() + ""); 
            
        

     

     
    布局xml:
    ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:orientation="vertical"
       
        <Button 
            android:id="@+id/main_btn_check" 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content" 
            android:text="检測网络" /> 
       
        <LinearLayout 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
       
            <TextView 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="网络是否连接:" /> 
       
            <EditText 
                android:id="@+id/main_et_net" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginLeft="10dp" 
                android:enabled="false" /> 
        </LinearLayout> 
       
        <LinearLayout 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
       
            <TextView 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="wifi是否连接:" /> 
       
            <EditText 
                android:id="@+id/main_et_wifi" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginLeft="10dp" 
                android:enabled="false" /> 
        </LinearLayout> 
       
        <LinearLayout 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
       
            <TextView 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="3G是否连接:" /> 
       
            <EditText 
                android:id="@+id/main_et_3g" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginLeft="10dp" 
                android:enabled="false" /> 
        </LinearLayout> 
       
        <LinearLayout 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
       
            <TextView 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="GPS是否打开:" /> 
       
            <EditText 
                android:id="@+id/main_et_GPS" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginLeft="10dp" 
                android:enabled="false" /> 
        </LinearLayout> 
       
    </LinearLayout>


  • 相关阅读:
    可配置智联爬虫
    python 交错列表合并
    猫途鹰简单爬虫正则巩固
    urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777) 解决办法
    与MongoDB有关的面试题
    go tcp socket
    postgresql摘要
    go+postgresql服务器
    go map slice array channel 传参
    postgresql 数据库学习
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6719251.html
Copyright © 2011-2022 走看看