WIFI热点的开启状态和开启后的SSID如何获取呢?

打开WifiManager.java源码,可找到 getWifiApState() 方法,惊喜的发现直接调用这个方法就能获取到热点的状态,然而在调用的时候并不能调用到这个方法。。。这个方法被隐藏起来了,目前我是通过反射调用的。

/**

* Gets the Wi-Fi enabled state.

* @return One of {@link #WIFI_AP_STATE_DISABLED},

* {@link #WIFI_AP_STATE_DISABLING}, {@link #WIFI_AP_STATE_ENABLED},

* {@link #WIFI_AP_STATE_ENABLING}, {@link #WIFI_AP_STATE_FAILED}

* @see #isWifiApEnabled()

*

* @hide Dont open yet

*/

public int getWifiApState() {

try {

return mService.getWifiApEnabledState();

} catch (RemoteException e) {

return WIFI_AP_STATE_FAILED;

}

}

于是就写了一个放射,获取热点的状态

public static boolean isWifiApOpen(Context context) {

try {

WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

//通过放射获取 getWifiApState()方法

Method method = manager.getClass().getDeclaredMethod("getWifiApState");

//调用getWifiApState() ,获取返回值

int state = (int) method.invoke(manager);

//通过放射获取 WIFI_AP的开启状态属性

Field field = manager.getClass().getDeclaredField("WIFI_AP_STATE_ENABLED");

//获取属性值

int value = (int) field.get(manager);

//判断是否开启

if (state == value) {

return true;

} else {

return false;

}

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} catch (NoSuchFieldException e) {

e.printStackTrace();

}

return false;

}

通过  getWifiApState() 方法返回值的注释,可以找到如下几种状态,拿到当前状态值之后,只需要对比各种状态的值,就知道热点的开启状态了

* @return One of {@link #WIFI_STATE_DISABLED},

* {@link #WIFI_STATE_DISABLING}, {@link #WIFI_STATE_ENABLED},

* {@link #WIFI_STATE_ENABLING}, {@link #WIFI_STATE_UNKNOWN}

同样的,也是通过反射获取到热点的SSID

try {

WifiManager manager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

//拿到getWifiApConfiguration()方法

Method method = manager.getClass().getDeclaredMethod("getWifiApConfiguration");

//调用getWifiApConfiguration()方法,获取到 热点的WifiConfiguration

WifiConfiguration configuration = (WifiConfiguration) method.invoke(manager);

ssid = configuration.SSID;

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

以上所述是小编给大家介绍的Android便携式热点的开启状态检测和SSID的获取方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

android开启wifi热点命令,Android便携式热点的开启状态检测和SSID的获取方法相关推荐

  1. android usb wifi驱动下载,android 平台USB wifi驱动移植及使用

    一.   Android平台Wifi的基本代码路径 1.       Wpa_supplicant源码部分 external/wpa_supplicant_6/ 生成库libwpa_client.so ...

  2. android进入wifi权限,判断android设备wifi连接状态,判断android设备wifi,添加访问权限(Andro...

    判断android设备wifi连接状态,判断android设备wifi,添加访问权限(Andro 添加访问权限(AndroidManifest.xml文件里) ```Java代码(MainActivi ...

  3. 创建WIFI Direct APP : android.net.wifi.p2p+android.net.wifi.p2p.nsd + Wi-Fi peer-to-peer overview 翻译

    一 ) Provides classes to create peer-to-peer (P2P) connections with Wi-Fi Direct. 提供用于使用Wi-Fi Direct创 ...

  4. android wifi信号强度命令,Android显示wifi信号强度以及周边信号的代码

    本帖最后由 liyihongcug 于 2015-1-19 11:26 编辑 http://blog.sina.com.cn/s/blog_9277d4a30101swxn.htmlhttp://bo ...

  5. android sd卡挂载命令,android - 从android中的adb shell手动挂载SD卡 - 堆栈内存溢出

    我有一个Android 4.1手机(联想820). 经过一些旨在对内部SD ram进行分区的更改(更改后,手机将不再安装外部 SD卡.我很擅长Linux,但我从未见过Android shell. 我很 ...

  6. android 验证wifi密码错误,Android中的Wifi身份验证错误

    此代码有效: IntentFilter mIntentFilter = new IntentFilter(); mIntentFilter.addAction(WifiManager.SUPPLICA ...

  7. android调用wifi打印机,要求Android程序连接到WiFi打印机并物理打印内容

    我用下面的代码打印 import java.io.IOException; import android.app.Activity; import android.app.AlertDialog; i ...

  8. android 验证wifi密码错误,Android – 看看wifi的密码是否正确

    我计划制作一个应用程序,检查某个wifi网络是否使用通用密码.我有一个最常见的密码列表,但以下功能: public boolean connectTo(String psKey){ WifiConfi ...

  9. linux防火墙开启某端口命令行,linux上防火墙 开启某个端口

    linux下防火墙 开启某个端口 直接在/etc/sysconfig/iptables中增加一行: -A RH-Firewall-1-INPUT -m state –state NEW -m tcp ...

  10. android hdmi拔插广播,Android drivers/switch驱动详解(用于通过GPIO状态检测耳机、HDMI等的插拔状态)...

    一.相关文件: /drivers/switch/switch_gpio.c /drivers/switch/switch_class.c 二.节点创建流程: 1.在/sys/class/目录下创建&q ...

最新文章

  1. 序列比对软件/比对工具的比较
  2. MyEclipse+Tomcat部署发布webapp
  3. 个人JS体系整理(二)
  4. 使用驱动器f:中的光盘之前需要将其格式化_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
  5. Spring Cloud Feign 负载均衡
  6. PHP7 ini 配置大全
  7. 量化信噪比 非均匀量化_键摄基础1:为什么要正确曝光/ADC精度和量化噪声
  8. HowToDoInJava 其它教程 2 · 翻译完毕
  9. 达摩院实现自动驾驶核心技术突破,首次实现3D物体检测精度与速度的兼得
  10. 广州图书馆跳转中国知网教程
  11. 利用GAN生成动漫头像
  12. WPS如何并排放置两张图片_动图演示如何制作XRD叠图与PDF卡线图
  13. android canvas 画圆边缘模糊,Android canvas画圆
  14. jetson nano 基础设置
  15. 鸿蒙合香丸是治胃的吗,何任大师治胃病的三个独家良方
  16. 刚刚加入博客的小白白
  17. 树莓派4b安装Android10
  18. Github: 单独删除某个文件的所有历史记录
  19. Asymmetric Co-Teaching for Unsupervised Cross-Domain Person Re-Identification简单翻译理解
  20. C#使用GDI+绘制高质量图和字体

热门文章

  1. 自动化缺陷检测系统---项目总览
  2. 好系统重装助手教你win10系统连接XP系统共享打印机的方法
  3. 统计——假设检验与p值
  4. 儿童吹泡泡水简单配方_教你泡泡水的制作方法 自制泡泡水配方大全
  5. Excel的窗口如何冻结与拆分?
  6. java barchart_Bar Chart
  7. 极智装修知识|飘窗五大改造妙招,让你只想窝在这
  8. html图片与文字的排版6,HTML文字与排版
  9. Linux内核时间管理和定时器
  10. 使用nat123动态解析公网ip