[Android] BroadcastReceiver에서 wifi / 3G 분기하기

public class ULNetworkReceiver extends BroadcastReceiver {
    private Activity activity;
    
    public ULNetworkReceiver() {
        super();
    }

    public ULNetworkReceiver(Activity activity) {
        this.activity = activity;
    }
    
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        
        // 네트웍에 변경이 일어났을때 발생하는 부분
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            try {
                ConnectivityManager connectivityManager =
                        (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
                NetworkInfo mobNetInfo =
                        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                
                WifiManager wifiManager =
                        (WifiManager) activity.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();

                if(wifiInfo != null) {

                    /** WIFI 활성화 했고, AP 사용가능 */
                    if(wifiInfo.getIpAddress()>0 && wifiInfo.getSSID()!=null
                               && wifiInfo.getSupplicantState().toString().equals("COMPLETED")) {

                    }
                    
                    /** WIFI 활성화 했지만, AP 사용불가 */
                    else if(wifiInfo.getIpAddress()==0&&wifiInfo.getSSID()==null
                            && (!wifiInfo.getSupplicantState().toString().equals("UNINITIALIZED")
                                    || wifiInfo.getSupplicantState().toString().equals("INACTIVE")
                                    || wifiInfo.getSupplicantState().toString().equals("SCANNING"))) {
                        Log.e("net info >>> ", "wifi use / AP not use ...");
                        
                    }
                    
                    /** WIFI 설정을 활성화 하지않은 경우/ 3G 사용가능할때 */
                    else if(activeNetInfo!=null && activeNetInfo.getTypeName().equals("mobile") &&
                            (wifiInfo.getSupplicantState().toString().equals("UNINITIALIZED")
                                    || wifiInfo.getSupplicantState().toString().equals("SCANNING")
                                    || wifiInfo.getSupplicantState().toString().equals("INACTIVE") )) {
                        Log.e("net info >>> ", "wifi not use / 3G success ...");
                        
                    }
                    /** 3G, WIFI 둘 다 없을 경우 */
                    else {
                        Log.e("getSupplicantState >>> ", wifiInfo.getSupplicantState().toString()+"...");
                    }        
                }
            } catch (Exception e){

            }            
        }
    }
}