跳转到网络设置界面,ConnectivityManager,WebView,ScrollView

来源:互联网 发布:监控上的端口号是什么 编辑:程序博客网 时间:2024/06/17 13:07

跳转到网络设置界面

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。

0 0
原创粉丝点击