android笔记 - 网络状态判断

来源:互联网 发布:it审计 编辑:程序博客网 时间:2024/05/16 07:43

1、首先当然得在 manifest 中添加检查网络状态的权限;

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/>

2、具体判断步骤
(1)首先要先获得Android 对连接管理的一个类对象。
   ConnectivityManager manager = (ConnectivityManager)getSystemService(
Context.CONNECTIVITY_SERVICE);


(2)获得网络链接状态
if (manager.getActiveNetworkInfo() != null) {   networkFlag = manager.getActiveNetworkInfo().isAvailable();  }

(3)如果没有连接,弹出对话框提示用户连接,并在“设置”按钮里让用户跳转到设置网络界面。“取消”按钮回到主程序。

if (! networkFlag) { AlertDialog.Builder builder = new AlertDialog.Builder(this);            builder.setIcon(android.R.drawable.ic_dialog_alert);            builder.setTitle("网络状态");            builder.setMessage("当前网络不可用,是否设置网络?");            builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {                                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");                      startActivity(wifiSettingsIntent);                 }            });            builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {                                @Override                public void onClick(DialogInterface dialog, int which) {                    dialog.cancel();                }            });            builder.create();            builder.show();}


  
(4)最后一步,也是比较关键一步,就是在manifest 里声明该Activity , 如果没做,则会出现“xxx 已经停止运行”,原因显而易见。
问题是,我们以前都是自己建立的Activity ,知道如何声明,这里是系统自己的setting , 我们如何声明呢?
 <PreferenceScreen             android:title="设置网络"             android:summary=" ">             <intent                 android:action="android.intent.action.MAIN"                 android:targetPackage="com.android.settings"                 android:targetClass="com.android.settings.WirelessSettings" />         </PreferenceScreen>  

在application 里面写上以上代码即可。  (困惑了好久,终于在一个前辈博客里找到了答案,在此感谢,http://blog.csdn.net/shenyuemei/article/details/8005241)

由于代码简单,所以就不上传DEMO 代码了。




0 0
原创粉丝点击