判断当前是wifi 还是网络

//判断当前是wifi 还是网络
public static boolean checkNetworkConnection(Context context)  
   {  
       final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  
       final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
       final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
  
       if(wifi.isAvailable()||mobile.isAvailable())  
           return true;  
       else  
           return false;  
   } 

 

public class extends BroadcastReceiver {  
  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        State wifiState = null;  
        State mobileState = null;  
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
        wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();  
        mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
        if (wifiState != null && mobileState != null  
                && State.CONNECTED != wifiState  
                && State.CONNECTED == mobileState) {  
            // 手机网络连接成功  
        } else if (wifiState != null && mobileState != null  
                && State.CONNECTED != wifiState  
                && State.CONNECTED != mobileState) {  
            // 手机没有任何的网络  
        } else if (wifiState != null && State.CONNECTED == wifiState) {  
            // 无线网络连接成功  
        }  
  
    }  
  
} 
//第一种 注册
<receiver  
    android:name="com.test.NetworkBroadcast"  
    android:label="NetworkConnection" >  
    <intent-filter>  
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />  
    </intent-filter>  
</receiver> 

//第二种
可以在Activity的onCreate()方法中注册广播,在Activity的onDestory()方法中卸载广播。

    private BroadcastReceiver networkBroadcast=new BroadcastReceiver();  

private void registerNetworkReceiver() {  
        IntentFilter filter = new 
//WifiManager.NETWORK_STATE_CHANGED_ACTION
IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);  
        this.registerReceiver(networkBroadcast, filter);  
    }  
      
    private void unRegisterNetworkReceiver() {  
            this.unregisterReceiver(networkBroadcast);  
    } 

 

posted @ 2016-06-25 00:39  马骝  阅读(635)  评论(0编辑  收藏  举报