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) 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,
在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只能有一个子空间,所以这个子空间一般是LearLayout。