Android連網主要使用HttpURLConneciton和HttpClient進行連網,在手機連網的時候,我們優先選擇wifi網路,其次在選擇移動網路,這裡所述移動網路主要指cmwap。
大家都知道cmwap串連需要設定Proxy 位址和連接埠,那麼,android程式中如何設定代理呢?
1、HttpURLConnection設定代理
//當我們使用的是中國移動的行動電話通訊時,下面方法可以直接擷取得到10.0.0.172,80連接埠String host=android.net.Proxy.getDefaultHost();//通過andorid.net.Proxy可以擷取預設的Proxy 位址int port =android.net.Proxy.getDefaultPort();//通過andorid.net.Proxy可以擷取預設的代理連接埠SocketAddress sa=new InetSocketAddress(host,port);//定義代理,此處的Proxy是源自java.netProxy proxy=new Proxy(java.net.Proxy.Type.HTTP,sa);URL getUrl = new URL(“www.baidu.com”); HttpURLConnection con = (HttpURLConnection) getUrl.openConnection(proxy);//設定代理
2、HttpClient設定代理
DefaultHttpClient httpClient=new DefaultHttpClient();String host=Proxy.getDefaultHost();//此處Proxy源自android.netint port = Proxy.getPort(context);//同上HttpHost httpHost = new HttpHost(host, port); //設定代理httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,httpHost);HttpGet httpGet=new HttpPost("<a href="http://www.baidu.com">www.baidu.com</a>");HttpResponse response=httpClient.execute(httpGet);
3、判斷手機是否連網,是否是wifi
boolean isConnect(){ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);if(cm!=null){return true;}return false;}boolean isWifi(){ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if(cm!=null){NetworkInfo ni = cm.getActiveNetworkInfo();if(!ni.getTypeName().equals("WIFI")){/* * ni.getTypeNmae()可能取值如下 * WIFI,表示WIFI連網 * MOBILE,表示GPRS、EGPRS * 3G網路沒有測試過 * WIFI和(E)GPRS不能共存,如果兩個都開啟,系統僅支援WIFI */return true;}}return false;}