zoukankan      html  css  js  c++  java
  • [Android]推断网络连接是否可用

    	/**
    	 * 推断移动网络是否开启
    	 * 
    	 * @param context
    	 * @return
    	 */
    	public static boolean isNetEnabled(Context context) {
    		TelephonyManager tm = (TelephonyManager) context
    				.getSystemService(Context.TELEPHONY_SERVICE);
    		if (tm != null) {
    			if (tm.getNetworkType() != TelephonyManager.NETWORK_TYPE_UNKNOWN) {
    				Log.i("sjf", "移动网络已经开启");
    				return true;
    			}
    		}
    		Log.i("sjf", "移动网络还未开启");
    		return false;
    	}
    
    	/**
    	 * 推断WIFI网络是否开启
    	 * 
    	 * @param context
    	 * @return
    	 */
    	public static boolean isWifiEnabled(Context context) {
    		WifiManager wm = (WifiManager) context
    				.getSystemService(Context.WIFI_SERVICE);
    		if (wm != null && wm.isWifiEnabled()) {
    			Log.i("sjf", "Wifi网络已经开启");
    			return true;
    		}
    		Log.i("sjf", "Wifi网络还未开启");
    		return false;
    	}
    
    	/**
    	 * 推断移动网络是否连接成功
    	 * 
    	 * @param context
    	 * @return
    	 */
    	public static boolean isNetContected(Context context) {
    		ConnectivityManager cm = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    		if (cm != null && info != null && info.isConnected()) {
    			Log.i("sjf", "移动网络连接成功");
    			return true;
    		}
    		Log.i("sjf", "移动网络连接失败");
    		return false;
    	}
    
    	/**
    	 * 推断WIFI是否连接成功
    	 * 
    	 * @param context
    	 * @return
    	 */
    	public static boolean isWifiContected(Context context) {
    		ConnectivityManager cm = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    		if (info != null && info.isConnected()) {
    			Log.i("sjf", "Wifi网络连接成功");
    			return true;
    		}
    		Log.i("sjf", "Wifi网络连接失败");
    		return false;
    	}
    
    	/**
    	 * 推断移动网络和WIFI是否开启
    	 * 
    	 * @param context
    	 * @return
    	 */
    	public static boolean isNetWorkEnabled(Context context) {
    		return (isNetEnabled(context) || isWifiEnabled(context));
    	}
    
    	/**
    	 * 推断移动网络和WIFI是否连接成功
    	 * @param context
    	 * @return
    	 */
    	public static boolean isNetworkConnected(Context context) {
    		return (isWifiContected(context) || isNetContected(context));
    	}

    操作Wifi须要AndroidManifest.xml在进行一些配置:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

    WIFI 的主要操作权限有四个: 
     CHANGE_NETWORK_STATE :同意改动网络状态的权限。 
     CHANGE_WIFI_STATE :同意改动 WIFI 状态的权限。 
     ACCESS_NETWORK_STATE :同意訪问网络状态的权限。 
     ACCESS_WIFI_STATE :同意訪问 WIFI 状态的权限。




  • 相关阅读:
    [MyBatis]最简MyBatis工程
    eclipse中如何删除已经添加到 Web App Libraries 中引用的jar包
    day48_项目管理学习笔记
    项目流程之失败的案例
    项目流程之婚礼流程
    day47_Maven学习笔记
    快还要更快,让PHP 7 运行更加神速
    Linux服务器时间同步
    Win10系统开启Linux Bash命令行
    红帽RHOP 8 发布一条龙方案
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6930405.html
Copyright © 2011-2022 走看看