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;
    }
}
        <!-- 网络广播监听 start -->
        <receiver android:name="com.comit.broadcast.NetworkConnectReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name="android.net.wifi.STATE_CHANGE" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.comit.broadcast.UploadService"
            android:enabled="true" >
            <intent-filter>
                <action android:name="com.comit.broadcast.UploadService" />
            </intent-filter>
        </service>
        <!-- 网络广播监听 end -->

猜你喜欢

转载自huqiji.iteye.com/blog/2254823
今日推荐