本文共 1383 字,大约阅读时间需要 4 分钟。
在Android模拟器中配置网络代理是一个常见的开发任务,以下将详细介绍如何在不同网络库中实现正确的网络访问。
首先,在Android模拟器中启动Android 2.2 emulator,并进入设置界面,依次选择Wireless & network -> Mobile networks -> Access Point Names。在列表中找到并打开Telkila设置。完成以上步骤后,系统浏览器可以访问互联网,但程序中的WebView或HttpConnection等仍无法访问互联网。
要实现程序的网络访问,需要在AndroidManifest.xml中添加相应的权限:
对于WebView的配置,建议在Activity中获取WebView实例,并设置其缓存模式和平台通知:
WebView mWebView = (WebView) findViewById(R.id.webView1);mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);mWebView.enablePlatformNotifications();
对于URLConnection的使用,可以通过获取默认代理地址和端口来配置:
URL url = new URL(urlStr);SocketAddress sa = new InetSocketAddress(android.net.Proxy.getDefaultHost(), android.net.Proxy.getDefaultPort());Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP, sa);URLConnection conn = url.openConnection(proxy);InputStream is = conn.getInputStream();
对于HttpClient的配置,需要设置代理参数:
DefaultHttpClient httpClient = new DefaultHttpClient();HttpHost httpHost = new HttpHost(host, port);httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, httpHost);
在实际开发中,需要根据网络类型选择是否配置代理。以下是判断网络类型的示例:
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);if (cm != null) { NetworkInfo ni = cm.getActiveNetworkInfo(); if (ni != null) { if (!ni.getTypeName().equals("WIFI")) { // 代理配置 } }} 通过以上方法,可以根据网络类型正确配置代理,实现程序的网络访问。
转载地址:http://axqfk.baihongyu.com/