Android 监听wifi播音的两种方式
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 -->