• Android实践--监測网络状态


    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

  • 相关阅读:
    mysql笔记3_存储引擎
    mysql笔记2_约束
    mysql笔记1_数据库发展史
    JDOM2.x|XPath小记
    关于批量导入数据以及调优的一些总结
    MD5加密算法
    document.ready和onload的区别——JavaScript文档加载完成事件 .
    java反编译工具
    容易被忽略CSS特性
    Struts2基本包作用详解
  • 原文地址:https://www.cnblogs.com/llguanli/p/6819633.html
Copyright © 2020-2023  润新知