文档章节

Android wifi 设置相关

coderminer
 coderminer
发布于 2016/11/01 09:36
字数 480
阅读 44
收藏 1

行业解决方案、产品招募中!想赚钱就来传!>>>

  • WifiManager

    获得WifiManager的实例

    private WifiManager mWifiManager = (WifiManager)c.getSystemService(Context.WIFI_SERVICE);
    
  • 检测Wiif的状态

    Wifi的状态值常量

    WIFI_STATE_DISABLED = 1; //Wi-Fi is disabled.
    WIFI_STATE_DISABLING = 0; //Wi-Fi is currently being disabled
    WIFI_STATE_ENABLED = 3; //Wi-Fi is enabled.
    WIFI_STATE_ENABLING = 2; //Wi-Fi is currently being enabled.
    WIFI_STATE_UNKNOWN = 4; //Wi-Fi is in an unknown state
    

Wifi状态监测

int state = mWifiManager.isWifiEnabled();

state的值,对应上面的wifi状态常量

  • 连接wifi

    打开wifi

    mWifiManager.setWifiEnabled(true);
    

    关闭wifi

    mWifiManager.setWifiEnabled(false);
    
  • Wifi 状态的变化的监听

    Wifi状态的变化可以通过广播来监听

    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
    
      @Override
      public void onReceive(Context context, Intent intent) {
          String action = intent.getAction();
          if(action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)){
              int s = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
              //wifi的状态变化会触发这个广播
              //s的值对应上面的wifi状态常量,可以根据不同的状态值来更新界面
          }
      }
    };
    

    链接wifi

    //netId 可以通过添加一个WifiConfiguration获得
    int netId = mWifiManager.addNetwork(config);
    boolean b = mWifiManager.enableNetwork(netId, true);
    
    

    添加WifiConfiguration //ssid : wifi 的名称,pwd: wifi的密码 ,type: 加密方式 0:没有加密 1:wep 2: wap

    public WifiConfiguration createWifiInfo(String ssid,String pwd,int type){
      log.e("create wifif ssid: "+ssid+" pwd: "+pwd+" type "+type);
      WifiConfiguration cfg = new WifiConfiguration();
      WifiConfiguration tempConfig = this.isExist(ssid);
      if(tempConfig != null) {
          mWifiManger.removeNetwork(tempConfig.networkId);
      }
    
      cfg.SSID = "\"" + ssid + "\"";
      if( !TextUtils.isEmpty(pwd)) {
          if(type == 0){
              cfg.wepKeys[0] = "";
              cfg.allowedKeyManagement.set(0);
              cfg.wepTxKeyIndex = 0;
          }else if( type == 1 ) {
              cfg.wepKeys[0]   = "\"" + pwd + "\"";
              cfg.wepTxKeyIndex = 0;
          }else {
              cfg.preSharedKey = "\"" + pwd + "\"";
          }
      }
    
      return cfg;
    }
    

    wifi断开连接

    mWifiManager.disableNetwork(netId);
    

    删除已经保存的wifi

    boolean r = mWifiManager.removeNetwork(netId);
    
    
  • 扫描可用的Wifi

    Wifi连接之后,可以扫描当前可以使用的wifi

    boolean scan = mWifiManager.startScan(); //返回true,说明扫描成功
    

    获取扫描到的wifi列表

    List<ScanResult> scanResults = mWifiManager.getScanResults();
    

    通过ScanResult可以获得wifi的相关信息

    for(ScanResult sr : scanResults){
      String SSID = sr.SSID; //wifi的名称,在设置中显示的名称
      String BSSID = sr.BSSID; //wifi的地址
      String cap = sr.capabilities; //wifi的加密方式
      int freq = sr.frequency ; //wifi的频率
      int level = sr.level; //wifi的强度
    }
    

    计算wifi的强度

    int level = WifiManager.calculateSignalLevel(sr.level, 5);
    
  • 获取已经连接的wifi的信息

    WifiInfo wi = mWifiManger.getConnectionInfo();
    

WifiInfo 的信息如图 这里写图片描述

  • 获取已经配置好的wifi的信息

    List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
    

WifiConfiguration的信息如图 这里写图片描述 这里写图片描述

coderminer
粉丝 1
博文 50
码字总数 8996
作品 0
海淀
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
619
1
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
6K
8
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
Android3D应用与游戏开发框架--JQGL

JQGL 是一款针对Android设备上3D应用、游戏的开发框架。 核心功能是OpenGL-ES的使用框架,相对于大部分开发者而已,OpenGL是陌生的,没有专门研究无法进行相关的开发。 本框架针对于Android...

Jping
2013/02/21
1.6K
0
StreetPass

StreetPass,最初是想模拟任天堂NDS掌机中的StreetPass开发的(但未完成,大体框架已可行)。适用于记录每天在街上偶遇的纸妹Or帅锅的信息。 原理是想采用Wifi hot技术,由此可以在搜索到附近...

口米巴
2013/03/18
1.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

认识Node

什么是Node? Node 是 JavaScript 的一种运行环境。可以使 JS 代码不依赖浏览器也可以执行。他俩的差异如下: 两个运行环境都包含了 ECMScript 。另一方面 JavaScript 包含了 BOM 和 DOM。 ...

长臂猿猴
12分钟前
13
0
正则表达式中的非捕获组是什么? - What is a non-capturing group in regular expressions?

问题: 非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? 解决方案: 参考一: https://stackoom.com/question/Ejkl/正则表达式中的非捕获组是什么 参考二: https://oldbug.net...

技术盛宴
12分钟前
6
0
他在国外演讲时说,学Python只要看答案做完这几十道题,就足够了

你想学Python?其实很简单,因为Python本身就是一门比较简单的编程语言。 你要做的也就是看着答案做完这几十道题就可以了,不管你是不是有编程基础,因为答案摆在那儿,你不可能不会做。 为什...

python小天
13分钟前
0
0
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 Me...

鹿老师的Java笔记
32分钟前
21
0
OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
49分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部