文档章节

android判断是否有网络

铂金小狼
 铂金小狼
发布于 2013/10/21 13:42
字数 335
阅读 1002
收藏 0
package com.microcorecn.tienalmusic.ui.utils;

import com.microcorecn.tienalmusic.TalaintMusicApplication;
import com.microcorecn.tienalmusic.ui.activity.login.LoginActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;

public final class IsNetwork {
	/**
	 * 判断手机是否联网
	 * @return
	 */
	public static boolean isNetwork(Context context) {
		ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
		if(connectivityManager == null) {
            return false;
        }  
		if( connectivityManager.getActiveNetworkInfo()==null){
		    return false;
		}
		 return     connectivityManager.getActiveNetworkInfo().isAvailable();
    }
	//是否是wifi网络
	public static boolean isWIFINetwork() {
		ConnectivityManager connectivityManager = (ConnectivityManager)TalaintMusicApplication.getInstance().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
		if(connectivityManager == null) {
            return false;
        }else{
            NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
            if (info != null) {
            	for (int i = 0; i < info.length; i++) {
            		if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
            			return true;
            		}
            	}
             }
         }
            return false;
    }
	
	
	public static void connectNet(Context context, WebView webView, String url, RelativeLayout relativeLayout){
//		webView.loadUrl(url);
		Log.e("stopnet", "start check");
		if (isNetwork(context)) {
			relativeLayout.setVisibility(View.GONE);
			webView.setVisibility(View.VISIBLE);
			Log.e("stopnet", "start load");
			webView.loadUrl(url);
		}else {
			relativeLayout.setVisibility(View.VISIBLE);
			webView.setVisibility(View.GONE);
			Toast.makeText(context, "手机网络不通,请先打开网络连接!", Toast.LENGTH_LONG).show();
		}
		Log.e("stopnet", "end check");
	}
	
	/**
	 *提示用户使用的网络
	 * @return
	 */
	public static int currentNetwork() {
		  ConnectivityManager mgrConn = (ConnectivityManager)TalaintMusicApplication.getInstance().getApplicationContext() .getSystemService(Context.CONNECTIVITY_SERVICE);   
	        NetworkInfo networkInfo = mgrConn.getActiveNetworkInfo();  
		        if (networkInfo != null ) {   
				        	if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI){ //是否是wifi
				        		   return 1;   //
				        	}
				        	if(networkInfo.getType() == ConnectivityManager.TYPE_MOBILE){//是否是3G网络
				        		return  2;   //
				        	}
		        }
	            return 0;   
	}
	
	/**
	 * 提示用户网络入口
	 * @param webView
	 * @param url
	 */
	public static void  currentConnectNet(WebView webView, String url){
		if (currentNetwork()==1) {
			Toast.makeText(TalaintMusicApplication.getInstance().getApplicationContext(), "XXXX有你最喜欢的音乐,歌手,祝你音乐之旅愉快!", Toast.LENGTH_LONG).show();
		 	 webView.loadUrl(url);
		}
		else  if (currentNetwork()==2) {
			Toast.makeText(TalaintMusicApplication.getInstance().getApplicationContext(), "当前使用3G网络,使用wifi会给你带来更完美的体验", Toast.LENGTH_LONG).show();
			webView.loadUrl(url);
		}	else  if(currentNetwork()==0){
			Toast.makeText(TalaintMusicApplication.getInstance().getApplicationContext(), "手机网络不通,请先打开网络连接!", Toast.LENGTH_LONG).show();
		}
	}
}

© 著作权归作者所有

铂金小狼
粉丝 54
博文 238
码字总数 23466
作品 0
程序员
私信 提问
Android 检测网络连接状态

Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。 首先,要判断网络状态,需要有相应的权限,下面为权限代码...

长平狐
2013/01/06
157
0
Android ActivityManager 检测Service与Activity运行状态

在后台与网络交互中,需要使用Service来和服务器保持连接,因此Service在被进程Kill掉后,主动开启Service是必要的,因此首先的检测Service是否已启动 1.检测Service是否已启动 2.检测应用A...

IamOkay
2014/11/30
0
0
Android判断当前的android设备是否处于联网状态

首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private ConnectivityManager connectivityManager;//用于判断是否有网络 connectivityManager = (C...

红豆与绿豆
2015/10/28
0
0
react native之获知设备联网或离线的状态信息。

NetInfo模块可以获知设备联网或离线的状态信息。 IOS 以异步的方式判断设备是否联网,以及是否使用了移动数据网络。 - 设备处于离线状态。 - 设备处于联网状态且通过wifi链接,或者是一个iOS...

Chason-洪
2017/10/17
0
0
Android判断设备网络连接状态,并判断连接方式

现在是互联网高速发展的时代,Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!好多的App都需要连接网络,所以抽时间就写了一个检测Android设备网...

穿裤衩闯天下
2013/05/24
0
4

没有更多内容

加载失败,请刷新页面

加载更多

抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资...

须臾之余
今天
2
0
springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
昨天
3
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
昨天
2
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部