开发者社区> sjf0115> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[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 状态的权限。




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android网络连接判断与处理
Android网络连接判断与处理 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。   1)判断是否有网络连接   1 public boolean isNetworkConnected(Context context) { ...
797 0
Android开发之入口Activity
原文:Android开发之入口Activity Android开发之入口Activity Adnroid App是如何确定入口Activity的? 难道就因为class的类名叫MainActivity,布局文件叫activity_main.xml? 如果这样认为,就大错特错了。
942 0
函数调用
#!/usr/bin/pythondef Cube(x=None,y=None,z=None):        if x==None:                x=1        if y==None:                y=2        if z==None:       ...
566 0
+关注
sjf0115
Stay Hungry, Stay Foolish---我们必须用谦虚者的自觉,饥饿者的渴望的求职态度,来拥抱我们的未来。
788
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载