获取网络状态及跳转到网络设置界面

Android平台提供了ConnectivityManager 类,用于网络连接状态的检测。
在使用ConnectivityManager 时,必须在AndroidManifest.xml中添加访问网络状态的权限

MainActivity.java

package com.example.networksetting; import android.app.Activity; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity { // 网络连接管理对象 private ConnectivityManager connectivityManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取网络连接管理的对象 connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); } @Override protected void onStart() { super.onStart(); // 检测网络设置 // 1.加入访问网络设置的权限 // 2.获取网路连接 // 3.获取可用网络的信息对象 NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo != null) { Toast.makeText(this, "网络可用", 1).show(); } else { new AlertDialog.Builder(this).setTitle("设置网路").setMessage("去设置网络") .setPositiveButton("设置", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { settingNetWork(); } }).setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "取消设置网络的操作", 1) .show(); } }).show(); } } public void settingNetWork() { // 隐式意图 Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory("android.intent.category.LAUNCHER"); intent.setFlags(0x10200000); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings")); startActivity(intent); } }


演示效果:
① 当有网络时,进入该应用会Toast网络可用。
获取网络状态及跳转到网络设置界面

② 当没有网络时,进入该应用会弹出我们写好的对话框

点击设置按钮将执行settingNetWork()方法跳转到设置页面,这里发送了一个隐式意图。

思考activity的可视化生命周期,为什么要将代码写在onStart( )方法里呢?

分类:默认分类 时间:2015-03-12 人气:8
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.023 (s). 9 q(s)