package org.deviceconnect.android.deviceplugin.theta.core.wifi; import android.app.Service; import android.content.Intent; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.IBinder; import org.deviceconnect.android.deviceplugin.theta.ThetaDeviceApplication; /** * WiFi State Service. * * @author NTT DOCOMO, INC. */ public class WifiStateService extends Service { private WifiStateEventListener mListener; @Override public void onCreate() { super.onCreate(); mListener = ((ThetaDeviceApplication) getApplication()).getDeviceManager(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent == null) { return START_STICKY; } String action = intent.getAction(); if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); if (networkInfo.isConnected()) { WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO); mListener.onNetworkChanged(wifiInfo); } } else if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN); switch (state) { case WifiManager.WIFI_STATE_DISABLED: mListener.onWiFiDisabled(); break; case WifiManager.WIFI_STATE_ENABLED: mListener.onWiFiEnabled(); break; default: break; } } return START_STICKY; } @Override public IBinder onBind(final Intent intent) { return null; } }