• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android便携式热点的开启状态检测和SSID的获取,android热点ssid

Android便携式热点的开启状态检测和SSID的获取,android热点ssid

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android ssid,热点ssid名称,热点ssid名称是什么,热点ssid,ssid等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android便携式热点的开启状态检测和SSID的获取,android热点ssid


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();
                    }

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android便携式热点的开启状态检测和SSID的获取,android热点ssid

相关文章

  • 2017-05-26初识genymotion安装遇上的VirtualBox问题,genymotionvirtualbox
  • 2017-05-26我的第一篇博客,我试试怎么用,第一篇博客,试试
  • 2017-05-26fastdfs 使用遇到的问题
  • 2017-05-26android计算每个目录剩余空间丶总空间以及SD卡剩余空间,androidsd
  • 2017-05-26Android 大杂烩工程之ListView的开发2以及数据仓库开发模式
  • 2017-05-26dspam运维记录
  • 2017-05-26okhttp3.4.1+retrofit2.1.0实现离线缓存,retrofitokhttp缓存
  • 2017-05-26Android View体系(七)从源码解析View的measure流程
  • 2017-05-26网上商城4--首页二级分类的查询,4--二级分类
  • 2017-05-26硅谷商城4--显示购物车商品,硅谷商城4--购物车

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android基础部分再学习---activity的状态保存
    • 错误提示”void is an invalid type for the variable“,invalidvariable
    • Android项目:手机安全卫士(16)—— 复杂 ListView浅析
    • ListView嵌套出现的问题,listview嵌套出现
    • APK瘦身记,如何实现高达53%的压缩效果,apk53%
    • 更多,更多大片访问
    • Android--数据库数据显示至屏幕
    • 8.3.3 Paint API之—— MaskFilter(面具)
    • 关于使用底部菜单栏的使用。。。,使用底部菜单栏..
    • 和我一起看API(一)你所不知道的LinearLayout补充,apilinearlayout

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有