网络状态判断,如果没有连接网络启动网络设置界面

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

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
  2. <uses-permission android:name="android.permission.INTERNET"/>  

2、具体判断步骤
(1)首先要先获得Android 对连接管理的一个类对象。
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.   ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

(2)获得网络链接状态
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. if (manager.getActiveNetworkInfo() != null) {  
  2.    networkFlag = manager.getActiveNetworkInfo().isAvailable();  
  3.   }  

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

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. if (! networkFlag) {  
  2.              AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  3.                 builder.setIcon(android.R.drawable.ic_dialog_alert);  
  4.                 builder.setTitle("网络状态");  
  5.                 builder.setMessage("当前网络不可用,是否设置网络?");  
  6.                 builder.setPositiveButton("设置"new DialogInterface.OnClickListener() {  
  7.                       
  8.                     @Override  
  9.                     public void onClick(DialogInterface dialog, int which) {  
  10.                         // TODO Auto-generated method stub  
  11.                         Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");     
  12.                            startActivity(wifiSettingsIntent);   
  13.                     }  
  14.                 });  
  15.                 builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {  
  16.                       
  17.                     @Override  
  18.                     public void onClick(DialogInterface dialog, int which) {  
  19.                         dialog.cancel();  
  20.                     }  
  21.                 });  
  22.                 builder.create();  
  23.                 builder.show();  
  24.         }  


  
(4)最后一步,也是比较关键一步,就是在manifest 里声明该Activity , 如果没做,则会出现“xxx 已经停止运行”,原因显而易见。
问题是,我们以前都是自己建立的Activity ,知道如何声明,这里是系统自己的setting , 我们如何声明呢?
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <PreferenceScreen   
  2.            android:title="设置网络"   
  3.            android:summary=" ">   
  4.            <intent   
  5.                android:action="android.intent.action.MAIN"   
  6.                android:targetPackage="com.android.settings"   
  7.                android:targetClass="com.android.settings.WirelessSettings" />   
  8.        </PreferenceScreen>    

在application 里面写上以上代码即可。  (困惑了好久,终于在一个前辈博客里找到了答案,在此感谢,http://blog.csdn.net/shenyuemei/article/details/8005241)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值