Android中判断应用运行时是否有网络连接并弹出对话框提示
来源:互联网 发布:unity3d室内场景收费 编辑:程序博客网 时间:2024/06/01 07:19
编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/59175179
- 判断应用是否有网络的工具类,如果没网络弹出对话框,需手动开启网络
public class NetworkUtils { /*** 判断网络情况 有网络返回true,没网络返回false*/ public static boolean isNetworkAvalible(Context context) { //检测API是不是小于23,因为到了API23之后getNetworkInfo(int networkType)方法被弃用 if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){ //获得ConnectivityManager对象 ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取WIFI连接的信息 NetworkInfo wifiNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); //获取移动数据连接的信息 NetworkInfo dataNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); //无线网连接和数据网连接都断开 if (!wifiNetworkInfo.isConnected() && !dataNetworkInfo.isConnected()) { return false; } //无线网连接和数据网连接一个 return true; //API大于23时使用下面的方式进行网络监听 }else{ // 获得网络状态管理器 ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager == null) { return false; } else { // 建立网络数组 NetworkInfo[] net_info = connectivityManager.getAllNetworkInfo(); if (net_info != null) { for (int i = 0; i < net_info.length; i++) { // 判断获得的网络状态是否是处于连接状态 if (net_info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } } // 如果没有网络,则弹出网络设置对话框 public static void checkNetwork(final Context context) { if (!NetworkUtils .isNetworkAvalible(context)) { new AlertDialog.Builder(context) .setTitle("网络状态提示") .setMessage("没有可以使用的网络,请先设置网络!") .setCancelable(false) .setIcon(R.mipmap.logo) .setPositiveButton("设置", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // 跳转到设置界面 context.startActivity(new Intent( Settings.ACTION_WIRELESS_SETTINGS)); } }).create().show(); } return; }}
- 创建一个NetWorkStateReceiver类,继承BroadcastReceiver,调用checkNetwork()方法,保证在调用此方法的activity中都能检测到网络是否连接
public class NetWorkStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { NetworkUtils .checkNetwork(context); }}
- 在Activity中显式的注册和取消注册广播,在onResume()方法中注册,在onPause()方法中取消注册
private NetWorkStateReceiver mNetWorkStateReceiver;@Overrideprotected void onResume() { if (mNetWorkStateReceiver== null) { mNetWorkStateReceiver= new NetWorkStateReceiver(); } IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(mNetWorkStateReceiver, filter); super.onResume();}@Overrideprotected void onPause() { unregisterReceiver(mNetWorkStateReceiver); super.onPause();}
- 在AndroidManifest文件中添加网络访问和网络状态权限
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Demo下载请移步:http://download.csdn.net/detail/zxc514257857/9826872
———-因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!———-
1 0
- Android中判断应用运行时是否有网络连接并弹出对话框提示
- Android中判断网络是否连接并提示设置
- Android-----------判断是否有网络连接并手动开启网络
- Android开发之判断网络是否连接并提示设置
- android 开发中如何判断是否有网络连接
- android 判断是否有网络连接,判断网络连接类型
- Android-判断是否有网络连接&&类型
- Android判断是否有网络连接
- Android 判断是否有网络连接
- android判断是否有网络连接
- Android :判断网络是否连接,并设置连接网络
- 判断是否有网络,如果没有网络,弹出对话框,然后可以跳转到设置页面
- ANDROID中判断网络连接是否可用
- android中判断网络连接是否可用
- android中判断网络是否连接
- Android中判断网络连接是否可用
- android中判断网络连接是否可用
- Android中判断是否连接到网络
- WINDOWS如何调试Flash程序保存SWF其产生的LOG
- 编译时出现log4j2的配置文件没有导入错误
- 打造Redux中间件
- 使用Android Studio 2.2和Cmake (CMakeLists)让OpenCV 飞起来
- 按键控制单个数码管显示
- Android中判断应用运行时是否有网络连接并弹出对话框提示
- 排序算法
- 同一台系统下的用户进程之间的通信理解
- linux中expect的使用
- Computer Vision News
- JavaScript 常用函数
- 脚本收集 js的 addLoadEvent(func)函数
- Linux常用指令,很实用,适合初学者
- Nim游戏 博弈论