使用wifi时项目中的地址都选用内网地址;当使用3g时选用外网地址。
这里字符串怎么处理。有好多地址,想在登陆时判断内外网。
类似c里面的宏

解决方案 »

  1.   


    mConnectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);   
    mTelephony = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE); //return  true表示有网络可用,false表示无网络可用
    public static boolean checkNetwork(){
        // 检查网络连接,如果无网络可用,就不需要进行连网操作等    
        final NetworkInfo info = mConnectivity.getActiveNetworkInfo();   
        if (info == null) {      
            return false;     
        }    
        //判断网络连接类型,是WIFI网络还是3G网络     
        final int netType = info.getType();   
        if (netType == ConnectivityManager.TYPE_WIFI) {   
            return info.isConnected();     
        } else if (netType == ConnectivityManager.TYPE_MOBILE && !mTelephony.isNetworkRoaming()) {
            return info.isConnected();     
        } else {        
            return false;     
        } 
    }
      

  2.   

    主要的不是判断内外网,是找一个对地址统一处理的方法。
    比如,目前项目里有大量类似
    String url="192.168.1.1/……"的地址。(每一个都对应一个外网地址“200.200.25.1/……”)
    当时内网时使用
    url="192.168.1.1/……"
    外网时
    url="200.200.25.1/……"
    能够统一处理一下