Android 监测网络状态 我们在使用Android手机时候,一些APP需要网络环境才能运行,所以手机需要 可用的网络,不管是2G、3G或者WIFI,甚至有一些比较耗流量的APP只能在WIFI的环境下运行,或者提供用户自行选择是否只能在WIFI环境下运行,作为用户貌似后者体验更好,那么作为开发者,我们仅仅需要几步就能给用户这种体验。 ----------------------------------------------------------------------------------------------------------------------------- 1.权限添加:APP需要联网,以及需要访问网络状态,所以在AndroidManifest.xml中添加权限。
    <uses-permission android:name= "android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.状态获取:手机网络有数据(2G/3G/4G)连接、WIFI连接两种状态,可以区分获取和笼统的获取。
/** * 检查WIFI是否连接 *  * @author Ysjian * @date 2014-5-9 * @return 如果连接了返回true,否则返回false */public boolean isWifiConnected() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);return wifiInfo != null;}/** * 检查手机网络(4G/3G/2G)是否连接 *  * @author Ysjian * @date 2014-5-9 * @return 如果连接了返回true,否则返回false */public boolean isMobileNetworkConnected() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mobileNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);return mobileNetworkInfo != null;}/** * 检查是否有可用网络 *  * @author Ysjian * @date 2014-5-9 * @return 存在WIFI和手机数据任意可用网络返回true,否则返回false */public boolean hasActivityNetwork() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);return connectivityManager.getActiveNetworkInfo() != null;}
3.跳转设置:如果没有网络,跳转到网络设置界面,可以根据具体需求调用上面的三个方法之一来判断网络状态。
if (!hasActivityNetwork()) {       AlertDialog.Builder builder = new AlertDialog.Builder(this );       builder. setTitle( "没有可用的网络" )                   .setMessage( "是否对网络进行设置?" )                   .setPositiveButton( "是" ,                         new DialogInterface.OnClickListener() {                                     @Override                                     public void onClick(DialogInterface dialog,int which) {                                               Intent intent = null ;                                               intent = newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                                               startActivity(intent);                                     }                     })                    .setNegativeButton( "否" ,                           new DialogInterface.OnClickListener() {                                   @Override                                    public void onClick(DialogInterface dialog, int which) {                                               dialog.dismiss();                                     }                           }).show();}
文章来源: http://blog.csdn.net/ysjian_pingcx/article/details/25461053

更多相关文章

  1. android activity与fragment的生命周期详细研究
  2. 转android的创意
  3. android发网络请求工具类
  4. 图解Android、iOS、WP7三大手机操作系统差别
  5. android webview里设置cookie
  6. Android基站定位——通过手机信号获取基站信息(一)
  7. Android(安卓)进程状态的概念
  8. Android中ActionBar中不显示overflow(就是三个点的那个按钮)
  9. Android(安卓)学习之相机(一)

随机推荐

  1. Android教程之Android SDK1.5模拟器使用
  2. Android数据库SQLite性能优化技巧
  3. Android PendingIntent实现原理和代码
  4. Android照相机模块编程 照片颠倒问题及查
  5. android manifest.xml 标签汇总
  6. android-pull方式解析xml文件以及XML文件
  7. Android学习——android:cacheColorHint=
  8. Android Studio首次运行卡在Fetching and
  9. 一个提供Android各历史版本在线源码的网
  10. 转载——android 有用的知识