Android利用反射获取WLAN热点信息
2015-09-22 11:24
405 查看
当然使用前需初始化wifiManager
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); private static final String TAG = "wifiHelper"; private WifiManager mWifiManager = null; //判断WLAN状态是否开启 public boolean isWifiApOn() { Method method = null; int i = 0; try { method = mWifiManager.getClass().getMethod("getWifiApState"); } catch (NoSuchMethodException e) { e.printStackTrace(); } try { i = (Integer) method.invoke(mWifiManager); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } Log.i(TAG, "wifi sharing state -> " + i); // 10---正在关闭;11---已关闭;12---正在开启;13---已开启 return i == 13; } //设置WLAN状态 public boolean setWifiApEnabled(boolean enabled) { Method method = null, configMethod = null; boolean result = false; if (mWifiManager == null) { Log.i(TAG, "mWifiManager is null -> " + result); return result; } try { configMethod = mWifiManager.getClass().getMethod("getWifiApConfiguration"); method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); } catch (Exception e) { e.printStackTrace(); } try { WifiConfiguration apConfig = (WifiConfiguration) configMethod.invoke(mWifiManager); result = (boolean) method.invoke(mWifiManager, new Object[]{apConfig, enabled}); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } Log.i(TAG, "setWifiApEnabled -> " + result); return result; } //获取WLAN SSID public String getWifiApSSID() { Method method = null; String SSID = null; try { method = mWifiManager.getClass().getMethod("getWifiApConfiguration"); } catch (Exception e) { e.printStackTrace(); } try { WifiConfiguration apConfig = (WifiConfiguration) method.invoke(mWifiManager); SSID = apConfig.SSID; } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } Log.i(TAG, "getWifiApSSID -> " + SSID); return SSID; } //获取WLAN 密码 public String getWifiApSharedKey() { Method method = null; String SharedKey = null; try { method = mWifiManager.getClass().getMethod("getWifiApConfiguration"); } catch (Exception e) { e.printStackTrace(); } try { WifiConfiguration apConfig = (WifiConfiguration) method.invoke(mWifiManager); SharedKey = apConfig.preSharedKey; } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return SharedKey; }
相关文章推荐
- 【Android】FragmentTabHost实现问题记录
- android 报错记录
- LeakCanary Android 和 Java 内存泄露检测
- 在布局中画虚线的方式
- Android中属性动画解析
- Android -- Environment类
- Android中关于Adapter的使用(下)BaseAdapter
- Android中关于Adapter的使用(中)SimpleAdapter
- Android中关于Adapter的使用(上)ArrayAdapter
- android ndk socket()系统调用
- Android数据存储SharedPreference用法简单示例
- Android 抓取正方数据
- Android从零单排之自动跟新
- Android Dependencies小差号引起的问题
- Android SDK 目录和作用详解
- Android百度地图开发05之公交信息检索 + 路线规划
- Android百度地图开发04之POI检索
- android一个项目引用另外一个项目和jar包引用
- Android工程出现 java.lang.NoClassDefFoundError错误解决方法
- Android百度地图开发01之初体验