package cn.zadui.reader.service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.util.Log; import cn.zadui.reader.helper.Settings; public class NetworkChangedReceiver extends BroadcastReceiver { static final String TAG="NetworkChangedReceiver"; @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetInfo != null && activeNetInfo.getState()==NetworkInfo.State.CONNECTED) { if(activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){ Log.d(TAG,"wifi connected!"); startDownloadService(context); }else if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE && !Settings.getBooleanPreferenceValue(context, Settings.PRE_WIFI_ONLY, Settings.DEF_WIFI_ONLY)){ Log.d(TAG,"Mobile Network connected!"); startDownloadService(context); }else{ //do nothing } } } private void startDownloadService(Context context) { Intent downIntent=new Intent(context,DownloadService.class); downIntent.putExtra(DownloadService.TRIGGER, "NetworkChangedReceiver"); context.startService(downIntent); } }