判断网络连接,没网进行设置

本文介绍了在Android中如何检查网络连接状态,并在没有网络时弹出对话框引导用户进入网络设置。首先,在AndroidManifest.xml中添加INTERNET和ACCESS_NETWORK_STATE权限。然后,创建一个名为ConnectionUtils的工具类,包含判断网络连接和打开网络设置的方法。在需要请求数据的界面,使用ConnectionUtils检查网络,若无网络则调用设置方法。
摘要由CSDN通过智能技术生成
  1. 1.在 AndroidManifest.xml中设置权限  
  2.   
  3.      <uses-permission android:name="android.permission.INTERNET">    </uses-permission>  
  4.   
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
  6.   
  7.   
  8.   
  9.   
  10. 2.创建一个判断网络的工具类    ConnectionUtils 里面包含两个方法一个是网络判断的,另一个是网络设置,具体代码如下:  
  11.   
  12.   
  13.   
  14.   
  15.   
  16. import android.content.ComponentName;  
  17. import android.content.Context;  
  18. import android.content.DialogInterface;  
  19. import android.content.Intent;  
  20. import android.net.ConnectivityManager;  
  21. import android.net.NetworkInfo;  
  22. import android.support.v7.app.AlertDialog;  
  23.   
  24. /**  
  25.  * Created by TIGER LEE on 2017/6/1.  
  26.  */  
  27.   
  28. public class ConnectionUtil {  
  29.   
  30.     /*  
  31.     * 判断网络连接是否已开  
  32.     *true 已打开  false 未打开  
  33.     * */  
  34.     public static boolean isConn(Context context){  
  35.         boolean bisConnFlag=false;  
  36.         ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  37.         NetworkInfo network = conManager.getActiveNetworkInfo();  
  38.         if(network!=null){  
  39.             bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();  
  40.         }  
  41.         return bisConnFlag;  
  42.     }  
  43.   
  44.   
  45.     /*  
  46.     * 打开设置网络界面  
  47.     * */  
  48.     public static void setNetworkMethod(final Context context){  
  49.         //提示对话框  
  50.         AlertDialog.Builder builder=new AlertDialog.Builder(context);  
  51.         builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {  
  52.   
  53.             @Override  
  54.             public void onClick(DialogInterface dialog, int which) {  
  55.                 // TODO Auto-generated method stub  
  56.                 Intent intent=null;  
  57.                 //判断手机系统的版本  即API大于10 就是3.0或以上版本  
  58.                 if(android.os.Build.VERSION.SDK_INT>10){  
  59.                     intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);  
  60.                 }else{  
  61.                     intent = new Intent();  
  62.                     ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");  
  63.                     intent.setComponent(component);  
  64.                     intent.setAction("android.intent.action.VIEW");  
  65.                 }  
  66.                 context.startActivity(intent);  
  67.             }  
  68.         }).setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  69.   
  70.             @Override  
  71.             public void onClick(DialogInterface dialog, int which) {  
  72.                 // TODO Auto-generated method stub  
  73.                 dialog.dismiss();  
  74.             }  
  75.         }).show();  
  76.     }  
  77. }  
  78.   
  79.   
  80.   
  81. 3.在相应的位置调用即可(请求数据的界面调用)  在fragment界面调用的  
  82.   
  83. if (!ConnectionUtil.isConn(getContext())) {  
  84.       
  85. //没网就进行网络设置  
  86.     ConnectionUtil.setNetworkMethod(getContext());  
  87.   
  88. } else{  
  89. //请求数据的方法  
  90.     getDataFromServer();  
  91. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值