安卓wifi基础功能

本文介绍了安卓系统中与WiFi相关的概念,包括WifiManager、WifiConfiguration等类,以及热点扫描、连接、断开等操作。详细阐述了如何获取WifiManager实例、开启/关闭WiFi、扫描周围热点、连接和断开特定热点的方法,并提到了热点加密类型及其安全性。同时,还涵盖了监听WiFi状态变化的广播通知和遗忘已连接热点的步骤。
摘要由CSDN通过智能技术生成
一 相关概念介绍
1 涉及到的类
  • WifiManager ——与Wifi相关的所有操作均通过此类
  • WifiConfiguration——Wifi网络配置信息
  • WifiInfo——表示当前的wifi热点信息
  • ScanResult——扫描到的热点信息类

AccessPoint:这里先自行定义一个对象,方便描述和讲解,结构如下:

public class AccessPoint {
   
    private String ssid;
    private String bssid;
    private String password;
    private float signalStrength;  // 0~100
    private String encryptionType;
    private int networkId;
    /**
     * aps are relative AccessPoints who share the same ssid while different bssid
     * we will treat them as one hotspot
     */
    private ArrayList<AccessPoint> relativeAPs;
}
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
2 涉及到的广播通知
  • WifiManager.WIFI_STATE_CHANGED_ACTION ——wifi开关变化广播
  • WifiManager.SCAN_RESULTS_AVAILABLE_ACTION——热点扫描结果通知广播
  • WifiManager.SUPPLICANT_STATE_CHANGED_ACTION——热点连接结果通知广播
  • WifiManager.NETWORK_STATE_CHANGED_ACTION——网络状态变化广播(与上一广播协同完成连接过程通知)
3 相关属性及概念
  • networkId——连接某个wifi热点时,系统会为该热点生成一个networkId
  • ssid——wifi热点名称,可重复
  • bssid——类似于mac地址,与ssid一起可作为热点的唯一标识,同时该属性每个热点唯一不重复
4 热点加密类型

常见及需要处理的热点,包括以下3大类:

  • open——开放型网络,即无加密,可直接连接
  • wep——采用wep加密类型的热点,已过时,不安全,容易被破解,目前使用率已不足10%
  • wpa/wpa2——目前使用最广泛,相对最安全,破解难度最大的加密类型
二 开发细节
1 获取WifiManager入口类实例:
wifiManager = (WifiManager) context
                    .getSystemService(Context.WIFI_SERVICE);
 
 
 
  • 1
  • 2
2 打开及关闭wifi
wifiManager.setWifiEnabled(true)
 
 
 
  • 1

true表示打开wifi开关,false表示关闭,该方法的返回值仅代表操作是否成功,不代表wifi状态的变化;
通过监听广播WifiManager.WIFI_STATE_CHANGED_ACTION &

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值