package com.zachklipp.captivate.service; import com.zachklipp.captivate.util.Log; import com.zachklipp.captivate.util.WifiHelper; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.wifi.WifiManager; public class WifiStateChangedReceiver extends BroadcastReceiver { private final static String LOG_TAG = "WifiStateChangedReceiver"; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.d(LOG_TAG, "onReceive(%s, %s)", context, intent); if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action) || WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { onNetworkStateChanged(context, intent); } } private void onNetworkStateChanged(Context context, Intent intent) { Log.d(LOG_TAG, "onNetworkStateChanged(%s, %s)", context, intent); if (WifiHelper.isWifiFinishedConnectingOrDisconnecting(intent)) { Log.d(LOG_TAG, "Wifi connection state changed, starting service..."); ComponentName service = PortalDetectorService.startService(context, WifiHelper.isWifiConnectedFromNetworkStateChangedIntent(intent)); Log.d(LOG_TAG, "Started service: " + service); } else { Log.d(LOG_TAG, "Wifi state not significantly changed, not starting service"); } } }