由于android不同版本,ap_state的常量值是不一样,这里提供一个工具类来解决此问题
android2.3版本
private static final int WIFI_AP_STATE_UNKNOWN = -1;
private static final int WIFI_AP_STATE_DISABLING = 0;
private static final int WIFI_AP_STATE_DISABLED = 1;
private static final int WIFI_AP_STATE_ENABLING = 2;
private static final int WIFI_AP_STATE_ENABLED = 3;
private static final int WIFI_AP_STATE_FAILED = 4;
4.0版本
public static final int WIFI_AP_STATE_DISABLING = 10;
public static final int WIFI_AP_STATE_DISABLED = 11;
public static final int WIFI_AP_STATE_ENABLING = 12;
public static final int WIFI_AP_STATE_ENABLED = 13;
public static final int WIFI_AP_STATE_FAILED = 14;
这里使用工具类
public class WifiApStateUtil {
public static int WIFI_AP_STATE_DISABLING;
public static int WIFI_AP_STATE_DISABLED;
public static int WIFI_AP_STATE_ENABLING;
public static int WIFI_AP_STATE_ENABLED;
public static int WIFI_AP_STATE_FAILED;
private static SparseArray<String> mWifiStateStr=new SparseArray<String>();
static {
try {
WIFI_AP_STATE_DISABLED = WifiManager.class.getField("WIFI_AP_STATE_DISABLED").getInt(null);
WIFI_AP_STATE_DISABLING = WifiManager.class.getField("WIFI_AP_STATE_DISABLING").getInt(null);
WIFI_AP_STATE_ENABLING = WifiManager.class.getField("WIFI_AP_STATE_ENABLING").getInt(null);
WIFI_AP_STATE_ENABLED = WifiManager.class.getField("WIFI_AP_STATE_ENABLED").getInt(null);
WIFI_AP_STATE_FAILED = WifiManager.class.getField("WIFI_AP_STATE_FAILED").getInt(null);
mWifiStateStr.append(WIFI_AP_STATE_DISABLED, "WIFI_AP_STATE_DISABLED");
mWifiStateStr.append(WIFI_AP_STATE_DISABLING,"WIFI_AP_STATE_DISABLING");
mWifiStateStr.append(WIFI_AP_STATE_ENABLING,"WIFI_AP_STATE_ENABLING");
mWifiStateStr.append(WIFI_AP_STATE_ENABLED,"WIFI_AP_STATE_ENABLED");
mWifiStateStr.append(WIFI_AP_STATE_FAILED,"WIFI_AP_STATE_FAILED");
} catch (IllegalArgumentException e) {
MicroLogging.e("WIFI_CONSTANTS", e);
} catch (IllegalAccessException e) {
MicroLogging.e("WIFI_CONSTANTS", e);
} catch (NoSuchFieldException e) {
MicroLogging.e("WIFI_CONSTANTS", e);
}
}
/**
* 将广播得到的int值转化为字符串
*
* @param x
* @return
*/
public static String wifiApState2Str(int x) {
return mWifiStateStr.get(x);
}
}