码迷,mamicode.com
首页 > 其他好文 > 详细

判断当前是wifi 还是网络

时间:2016-06-25 00:56:32      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

//判断当前是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);  
    } 

 

判断当前是wifi 还是网络

标签:

原文地址:http://www.cnblogs.com/maliu/p/5615637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!