跳转到网络设置界面,ConnectivityManager,WebView,ScrollView
2015-09-12 20:04
393 查看
跳转到网络设置界面
Intent intent = null; try { String sdkVersion = android.os.Build.VERSION.SDK; if (Integer.valueOf(sdkVersion) > 10) { intent = new Intent( android.provider.Settings.ACTION_WIRELESS_SETTINGS); } else { intent = new Intent(); ComponentName comp = new ComponentName( "com.android.settings", "com.android.settings.WirelessSettings"); intent.setComponent(comp); intent.setAction("android.intent.action.VIEW"); } LoginActivity.this.startActivity(intent); finish();
ConnectivityManager
通过ConnectivityManager可以获得手机的网络信息,例如网络是否连接,网络的类型,名称,等信息。代码如下:
首先获得网络管理器 connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); public void onClick(View v) { switch (v.getId()){ case R.id.net_connect: NetworkInfo info= connectivityManager.getActiveNetworkInfo();//获得网络详情,如果没有返回null if(info!=null&&info.isConnected()){ Toast.makeText(getApplicationContext(),"有网络连接",Toast.LENGTH_LONG); textView_net.setText("网络为:"+info.getTypeName());//获得网络的名字 }else { Toast.makeText(getApplicationContext(),"没有网络连接",Toast.LENGTH_LONG); } break; } }
调用info.isConnected()获得是否连接。info.getTypeName()获得网络的名称。info.getType()==ConnectivityManager.TYPE_WIFI判读是否为WIFI网络。Info.getType()==ConnectivityManager.TYPE_MOBILE判读是否为3G网络。
注意
要获得这些手机的网络信息,必须在mainfests中声明权限。<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
WebView
在应用中可以加载网页,这里提供了一个新的控件WebView,在XML中的设置与其他控件没有什么区别。
在代码中可以设置WebView加载的网页地址,监听WebView的加载进度,设置是否网页可以缩放,等等。
1.缓存设置,设置是否优先使用缓存:
/** * 缓存设置 */ webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//优先使用缓存 webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//不使用缓存
2.缩放设置:
/** * 缩放设置 */ WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); // 显示放大缩小 controler settings.setSupportZoom(true); // 可以缩放 settings.setDefaultZoom(WebSettings.ZoomDensity.CLOSE);// 默认缩放模式 settings.setUseWideViewPort(true); //为图片添加放大缩小功能 webView.getSettings().setDisplayZoomControls(false);//设定缩放控件不显示
3.启动JavaScript加载界面并且覆盖系统加载页面的设置,WebViewClient用来处理一些页面控制和请求的通知。代码如下:
webView.setWebViewClient(new WebViewClient() { /** * 用来覆盖系统加载网页的设置 * @param view * @param url * @return */ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true;//一定要返回true } /** * 加载开始 * @param view * @param url * @param favicon */ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progressBar.setVisibility(View.VISIBLE); super.onPageStarted(view, url, favicon); } /** * 加载结束 * @param view * @param url */ @Override public void onPageFinished(WebView view, String url) { progressBar.setVisibility(View.INVISIBLE); super.onPageFinished(view, url); } });
4.设置back键返回上一个界面
/** * 设置back键返回上几个界面 * @param keyCode * @param event * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(webView.canGoBack()){ webView.goBack(); return true;//这个必须设置 }else { MainActivity.this.finish(); } } return super.onKeyDown(keyCode, event); }
5.加载页面
webView.loadUrl("http://www.360.com/");
完整代码如下:
public class MainActivity extends Activity implements View.OnClickListener{ private Button net_button; private TextView textView_net; private ConnectivityManager connectivityManager; private WebView net_webView; private TextView down_no; private ProgressBar down_progress; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); net_button= (Button) findViewById(R.id.net_connect); textView_net= (TextView) findViewById(R.id.net_datail); net_webView = (WebView) findViewById(R.id.net_webView); down_no= (TextView) findViewById(R.id.down_no); down_progress= (ProgressBar) findViewById(R.id.down_progressBar); net_webView.getSettings().setJavaScriptEnabled(true); //实现放大与缩小 WebSettings settings = net_webView.getSettings(); settings.setBuiltInZoomControls(true); // 显示放大缩小 controler settings.setSupportZoom(true); // 可以缩放 settings.setDefaultZoom(WebSettings.ZoomDensity.CLOSE);// 默认缩放模式 settings.setUseWideViewPort(true); //为图片添加放大缩小功能 net_webView.getSettings().setDisplayZoomControls(false);//设定缩放控件 net_webView.setWebChromeClient(new WebChromeClient(){ //进度进行中 @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); down_progress.setProgress(newProgress); } }); net_webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); net_webView.setVisibility(View.GONE); down_no.setVisibility(View.VISIBLE); } //进度开始 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); down_progress.setVisibility(View.VISIBLE);//使进度条显示 } //进度完成 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); down_progress.setVisibility(View.INVISIBLE);//隐藏进度条 } }); net_button.setOnClickListener(this); //获得网络管理器 connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(net_webView.canGoBack()){ net_webView.goBack(); return true; }else { MainActivity.this.finish(); } } return super.onKeyDown(keyCode, event); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.net_connect: net_webView.loadUrl("http://www.bjlingzhuo.com/"); break; } } }
ScrollView
ScrollView这个控件可以实现在一个屏不能加载完网页时,可以向下拖动。ScrollView只能有一个子空间,所以这个子空间一般是LearLayout。相关文章推荐
- 网络流之标号法
- Android 网络连接——WebView
- Linux网络配置
- HTTPS那个东西(一)-HTTPS原理
- 网络连接——文件下载(单线程/多线程)
- TCP协议中的三次握手和四次挥手(图解)
- linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置
- 一定要减少用户从网络获取资源的成本
- Android 网络连接——ConnectivityManager网络管理器
- OkHttp的简单使用
- apache HttpClient 3.X使用手册
- TCP协议中的三次握手和四次挥手(图解)
- TCP的状态和三次握手
- IP首部校验和的计算
- nyoj 170 网络的可靠性
- U3D HTTP 最好用的插件BestHttp
- 【网络】(四)网络相关函数使用简介
- 如何判断当前网络状况
- 自定义HTTP请求头被tomcat拦截
- listview显示网络图片