Android之WifiManager



看了http://blog.csdn.net/xusiwei1236/article/details/48495485 这篇文章之后想了解WifiManager ,看了下面的这边文章,讲的比较清楚。谢谢原作者。



原文来源于:(只是知识分享,如有侵权,请告知!)


http://www.cnblogs.com/jerehedu/p/4913729.html 



        移动设备离不开网络,android平台中在包android.net.wifi下提供了一些类专门用于管理设备的Wifi功能。该包下主要存在如下几个类:

1、  ScanResult:主要用来描述通过Wifi硬件扫描获取的周边的wifi热点的信息。包含的字段信息和方法如下图:

2、  WifiConfiguration:此类用于描述Wifi网络的配置信息,包括安全配置信息。在该类中提供了如下几个之类,主要用于说明Wifi的加密方式。

  3、  WifiInfo:用于描述已经链接的Wifi的信息,通过如下方法,可以获取相关的信息

getBSSID():获取BSSID,以XX:XX:XX:XX:XX:XX的形式

getDetailedStateOf(SupplicantState suppState):获取网络链接的状态。

getHiddenSSID():SSID是否被隐藏。

getIpAddress():获取IP地址

getLinkSpeed():获取链接的速度

getNetworkId():获取网络编号

getRssi():获取强度。

getSSID():获取SSID信息

getSupplicantState():获取客户端状态信息

4、  WifiManager:该类主要用来管理Wifi,里面含有许多方法,如下图,具体使用可以查看下面的案例。

下面我们通过一个案例来演示WifiManager的具体使用方法,案例界面效果如下图:

 

Activity代码如下:



//获取WifiManager
wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);




/**
 * 扫描网络
 * @param v
 */
public void netScan(View v){
    //启动扫描
    wifiManager.startScan();
    //获取扫描结果
    List<ScanResult> mData= wifiManager.getScanResults();
    ScanReslutAdapter adapter = new ScanReslutAdapter(mData);
    listView.setAdapter(adapter);
}
/**
 * 打开网络
 * @param v
 */
public void openNet(View v){
    if(!wifiManager.isWifiEnabled()){
        wifiManager.setWifiEnabled(true);
    }
}
/**
 * 关闭网络
 * @param v
 */
public void closeNet(View v){
    if(wifiManager.isWifiEnabled()){
        wifiManager.setWifiEnabled(false);
    }
}
/**
 * 获取网络状态
 * @param v
 */
public void getNetState(View v){
    int state= wifiManager.getWifiState();
    String stateStr = "";
    switch (state){
        case WifiManager.WIFI_STATE_DISABLED:
            stateStr="DISABLED";
            break;
        case WifiManager.WIFI_STATE_DISABLING:
            stateStr="DISABLING";
            break;
        case WifiManager.WIFI_STATE_ENABLED:
            stateStr="ENABLED";
            break;
        case WifiManager.WIFI_STATE_ENABLING:
            stateStr="ENABLING";
            break;
    }
    netState.setText("网络状态:"+stateStr);
}


/**
 * 监控Wifi信号的强度
 * @param v
 */
public void monitorSignal(View v){
    //获取当前Wifi的链接信息
    WifiInfo wifiInfo= wifiManager.getConnectionInfo();
    //获取信号强度
    int level = wifiInfo.getRssi();
    //获得信号强度值
    level = wifiInfo.getRssi();
    //根据获得的信号强度发送信息
    String levelStr="无信号";
    if (level <= 0 && level >= -50) {
        levelStr="信号最好";
    } else if (level < -50 && level >= -70) {
        levelStr="信号较好";
    } else if (level < -70 && level >= -80) {
        levelStr="信号一般";
    } else if (level < -80 && level >= -100) {
        levelStr="信号差";
    }
    netInfo.setText("信号强度:"+levelStr);
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值