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热点开启
# 热点ssid获取
# Android 连接Wifi和创建Wifi热点的实例
# Android获取周围WIFI热点服务
# android编程实现设置、打开wifi热点共享供他人连接的方法
# android多行标签热点示例
# Android获取实时连接热点的设备IP
# 小编
# 返回值
# 我是
# 就能
# 在此
# 给大家
# 写了
# 几种
# 只需要
# 并不能
# 可以找到
# 所述
# 给我留言
# 感谢大家
# 判断是否
# 疑问请
# 有任何
# 就知道
# 直接调用
# 起来了
相关文章:
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何快速选择适合个人网站的云服务器配置?
广德云建站网站建设方案与建站流程优化指南
攀枝花网站建设,攀枝花营业执照网上怎么年审?
,想在网上投简历,哪几个网站比较好?
css网站制作参考文献有哪些,易聊怎么注册?
制作网站的公司有哪些,做一个公司网站要多少钱?
微课制作网站有哪些,微课网怎么进?
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何高效配置IIS服务器搭建网站?
如何选择网络建站服务器?高效建站必看指南
建站之星后台密码如何安全设置与找回?
如何配置支付宝与微信支付功能?
建站主机服务器选购指南:轻量应用与VPS配置解析
,南京靠谱的征婚网站?
如何快速搭建支持数据库操作的智能建站平台?
如何通过网站建站时间优化SEO与用户体验?
5种Android数据存储方式汇总
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
建站之星后台管理:高效配置与模板优化提升用户体验
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
h5在线制作网站电脑版下载,h5网页制作软件?
如何在宝塔面板创建新站点?
宝塔新建站点为何无法访问?如何排查?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何高效生成建站之星成品网站源码?
魔方云NAT建站如何实现端口转发?
如何快速重置建站主机并恢复默认配置?
C#如何在一个XML文件中查找并替换文本内容
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
制作网站的基本流程,设计网站的软件是什么?
建站主机与服务器功能差异如何区分?
建站之星伪静态规则如何设置?
,制作一个手机app网站要多少钱?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
,柠檬视频怎样兑换vip?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
网站按钮制作软件,如何实现网页中按钮的自动点击?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
网站制作话术技巧,网站推广做的好怎么话术?
高防服务器租用指南:配置选择与快速部署攻略
*请认真填写需求信息,我们会在24小时内与您取得联系。