Android网络连接类型

来源:互联网 发布:淘宝网售后服务内容 编辑:程序博客网 时间:2024/06/13 05:51
 网络连接类型 ConnectivityManager

 

监听网络变化broadcat <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 

ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);   
NetworkInfo info = connec.getActiveNetworkInfo(); 
//倘若手机目前不在网络的服务范围,则connec.getActiveNetworkInfo()会返回null
//NetworkInfo []allinfo=  connec.getAllNetworkInfo(); 
/*5种联网类型*/
String typeName = info.getTypeName(); //cmwap/cmnet/wifi/uniwap/uninet  
info.getTypeName();     // 以何种方式连线 [WIFI]
info.getState();        // 连线状态 [CONNECTED]
info.isAvailable();     // 网络是否可用 [true]
info.isConnected();     // 网络是否已经连接 [true]
info.isConnectedOrConnecting(); // 网络是否已经连接或者连接中 [true]
info.isFailover();      // 网络是否有问题 [false]
info.isRoaming();       // 网络是否在漫游中 [false]
需要加的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
2  PhoneStateListener
很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、正在连接和连接成功。
final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);    
mTelephonyMgr.listen(new PhoneStateListener(){  
                      
    @Override  
    public void onDataConnectionStateChanged(int state) {  
        switch(state){  
            case TelephonyManager.DATA_DISCONNECTED://网络断开  
                break;  
            case TelephonyManager.DATA_CONNECTING://网络正在连接  
                break;  
            case TelephonyManager.DATA_CONNECTED://网络连接上  
                break;  
        }  
    }  
                          
    }, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);  
0 0