package com.RSen.Commandr.util; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.util.Log; import java.lang.reflect.Method; /** * @author Tim Schonberger * Commandr for Google Now * WifiAPUtils.java * @version 1.0 * 8/24/14 */ public class WifiAPUtils { private enum WIFI_AP_STATE { WIFI_AP_STATE_DISABLING, WIFI_AP_STATE_DISABLED, WIFI_AP_STATE_ENABLING, WIFI_AP_STATE_ENABLED, WIFI_AP_STATE_FAILED } public static boolean setWifiApEnabled(Context context, boolean enabled) { WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); try { if (enabled) { mWifiManager.setWifiEnabled(false); } Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); return (Boolean) method.invoke(mWifiManager, null, enabled); } catch (Exception e) { return false; } } public boolean isWifiApEnabled(Context context) { return getWifiApState(context) == WIFI_AP_STATE.WIFI_AP_STATE_ENABLED; } private WIFI_AP_STATE getWifiApState(Context context) { WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); try { Method method = mWifiManager.getClass().getMethod("getWifiApState"); int tmp = ((Integer)method.invoke(mWifiManager)); // Fix for Android 4 if (tmp > 10) { tmp = tmp - 10; } return WIFI_AP_STATE.class.getEnumConstants()[tmp]; } catch (Exception e) { Log.e(this.getClass().toString(), "", e); return WIFI_AP_STATE.WIFI_AP_STATE_FAILED; } } }