import android.net.ConnectivityManager;\r
import android.net.NetworkInfo;\r
import android.net.wifi.WifiManager;\r
+import android.util.Log;\r
\r
public class CaIpInterface {\r
private static Context mContext;\r
\r
+ public enum WifiAPState{\r
+ WIFI_AP_STATE_DISABLING (10),\r
+ WIFI_AP_STATE_DISABLED (11),\r
+ WIFI_AP_STATE_ENABLING (12),\r
+ WIFI_AP_STATE_ENABLED (13),\r
+ WIFI_AP_STATE_FAILED (14)\r
+ ; // semicolon needed when fields / methods follow\r
+\r
+\r
+ private final int apstate;\r
+\r
+ WifiAPState(int apstate)\r
+ {\r
+ this.apstate = apstate;\r
+ }\r
+ public int getIntValue() {\r
+ return this.apstate;\r
+ }\r
+ }\r
+\r
private CaIpInterface(Context context) {\r
mContext = context;\r
registerIpStateReceiver();\r
IntentFilter intentFilter = new IntentFilter();\r
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);\r
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);\r
+ intentFilter.addAction("android.net.wifi.WIFI_AP_STATE_CHANGED");\r
\r
mContext.registerReceiver(mReceiver, intentFilter);\r
}\r
caIpStateEnabled();\r
}\r
}\r
+\r
+ if (intent.getAction().equals("android.net.wifi.WIFI_AP_STATE_CHANGED")) {\r
+ if (intent.getIntExtra("wifi_state",\r
+ WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+ == WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+ {\r
+ caIpStateDisabled();\r
+ }else if(intent.getIntExtra("wifi_state",\r
+ WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+ == WifiAPState.WIFI_AP_STATE_ENABLED.getIntValue())\r
+ {\r
+ try {\r
+ Thread.sleep(1000);\r
+ } catch (InterruptedException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ caIpStateEnabled();\r
+ }\r
+ }\r
}\r
};\r
\r