阅读背景:

Android 监听wifi广播的两种方式

来源:互联网 

package com.comit.broadcast;

import com.comit.util.AppHpler;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;

/**
 * @ClassName: NetworkConnectReceiver
 * @Description:网络监控广播
 * @author: RockeyCai
 * @date: 2015-11-05 上午14:14:59
 * 
 */
public class NetworkConnectReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

	AppHpler.setAutoUploadImgTask(context, true);
	
	//不主动上传
	if (!AppHpler.getAutoUploadImgTask(context)) {
	    return;
	}
	
	// 这个监听网络衔接的设置,包含wifi和移动数据 的打开和关闭
	if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {

	    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
	    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

	    if (activeNetInfo != null) {
		// 断定是wifi衔接
		if (activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
		    Log.d(NetworkConnectReceiver.class.getCanonicalName(), "wifi衔接:" + activeNetInfo.getState());
		    // 衔接胜利
		    if (NetworkInfo.State.CONNECTED == activeNetInfo.getState()) {
			//启动开端上传图片服务
			uploadService(context, intent, UploadService.UPLOAD_SERVICE_DO_UPLOAD_TRUE);
			return;
		    } 
//		    else if (activeNetInfo.getType() == 1) {
//			if (NetworkInfo.State.DISCONNECTING == activeNetInfo.getState()) {
//			    // 未衔接胜利
//			    uploadService(context, intent, true);
//			}
//		    }
		} 
	    }
	    // 网络无效  停滞上传服务
	    uploadService(context, intent, UploadService.UPLOAD_SERVICE_DO_UPLOAD_FALSE);
	}
    }

    /**
     * 上传服务
     * @param mContext
     * @param intent
     * @param isUpload
     */
    private void uploadService(Context mContext, Intent intent, boolean doUpload) {

	Intent serviceIntent = new Intent(mContext, UploadService.class);
	serviceIntent.putExtra(UploadService.UPLOAD_SERVICE_DO_UPLOAD_FLAG, doUpload);
	 mContext.startService(serviceIntent);
    }

    /**
     * 是不是为wifi衔接
     * 
     * @param mContext
     * @return
     */
    public static boolean isWifi(Context mContext) {
	ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
	NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
	if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
	    return true;
	}
	return false;
    }
}package com.comit.broadcast;

import com.comit.ut




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: