`

2011-09-25 11:03 Android-开启和关闭wifi的代码段

    博客分类:
  • java
 
阅读更多

 

1·申请权限:

android.permission.ACCESS_WIFI_STATE 

android.permission.CHANGE_WIFI_STATE 

android.permission.WAKE_LOCK

获取WifiManager

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

开启、关闭wifi 

if (wifiManager.isWifiEnabled()) {  

wifiManager.setWifiEnabled(false);  

} else {  

wifiManager.setWifiEnabled(true);  

}

 

注意

如果遇到force-close, 选wait即可, 因为启动wifi需要几秒钟, UI如果5妙钟还没反映的话, 系统会给你这个force close exception 

Android Wifi的使用

 

package com.Aina.Android;  

 

import java.util.List;  

 

import android.content.Context;  

import android.net.wifi.ScanResult;  

import android.net.wifi.WifiConfiguration;  

import android.net.wifi.WifiInfo;  

import android.net.wifi.WifiManager;  

import android.net.wifi.WifiManager.WifiLock;  

 

/** 

 * com.Aina.Android Pro_wifi 

 *  

 * @author Aina.huang E-mail: 674023920@qq.com 

 * @version 创建时间:2010 Jul 21, 2010 12:29:00 PM 类说明 

 */  

public class WifiAdmin {  

 

    private WifiManager mWifiManager = null;  

    private WifiInfo mWifiInfo = null;  

    private List<ScanResult> mWifiList = null;// 扫描出的网络连接列表  

    private List<WifiConfiguration> mWifiConfiguration = null;// 网络连接列表  

    private WifiLock mWifiLock = null;  

 

    public WifiAdmin(Context mContext) {  

        mWifiManager = (WifiManager) mContext  

                .getSystemService(mContext.WIFI_SERVICE);  

        mWifiInfo = mWifiManager.getConnectionInfo();  

    }  

 

    public void OpenWifi() {  

        if (!mWifiManager.isWifiEnabled()) {  

            mWifiManager.setWifiEnabled(true);// 打开wifi  

        }  

    }  

 

    public void CloseWife() {  

        if (mWifiManager.isWifiEnabled()) {  

            mWifiManager.setWifiEnabled(false);// 关闭wifi  

        }  

    }  

 

    public void lockWifi() {  

        mWifiLock.acquire();// 锁定wifi  

    }  

 

    public void rlockWifi() {  

        if (mWifiLock.isHeld()) {  

            mWifiLock.acquire();// 解锁wifi  

        }  

    }  

 

    public void Createwifilock() {  

        mWifiLock = mWifiManager.createWifiLock("Testss");// 创建一个wifilock  

    }  

 

    public List<WifiConfiguration> GetConfinguration() {  

        return mWifiConfiguration;// 得到配置好的网络  

    }  

 

    public void ConnectConfiguration(int index) {  

        if (index > mWifiConfiguration.size()) {  

            return;  

        }  

        mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);//连接配置好的指定ID的网络  

    }  

    public void StartScan()  

    {  

        mWifiManager.startScan();  

        //得到扫描结果  

        mWifiList = mWifiManager.getScanResults();  

        //得到配置好的网络连接  

        mWifiConfiguration = mWifiManager.getConfiguredNetworks();  

    }  

    //得到网络列表  

    public List<ScanResult> GetWifiList()  

    {  

        return mWifiList;  

    }  

    //查看扫描结果  

    public StringBuilder LookUpScan()  

    {  

        StringBuilder stringBuilder = new StringBuilder();  

        for (int i = 0; i < mWifiList.size(); i++)  

        {  

            stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");  

            //将ScanResult信息转换成一个字符串包  

            //其中把包括:BSSID、SSID、capabilities、frequency、level  

            stringBuilder.append((mWifiList.get(i)).toString());  

            stringBuilder.append("\n");  

        }  

        return stringBuilder;  

    }  

    //得到MAC地址  

    public String GetMacAddress()  

    {  

        return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();  

    }  

    //得到接入点的BSSID  

    public String GetBSSID()  

    {  

        return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();  

    }  

    //得到IP地址  

    public int GetIPAddress()  

    {  

        return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();  

    }  

    //得到连接的ID  

    public int GetNetworkId()  

    {  

        return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();  

    }  

    //得到WifiInfo的所有信息包  

    public String GetWifiInfo()  

    {  

        return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();  

    }  

    //添加一个网络并连接  

    public void AddNetwork(WifiConfiguration wcg)  

    {  

        int wcgID = mWifiManager.addNetwork(wcg);   

        mWifiManager.enableNetwork(wcgID, true);   

    }  

    //断开指定ID的网络  

    public void DisconnectWifi(int netId)  

    {  

        mWifiManager.disableNetwork(netId);  

        mWifiManager.disconnect();  

    }  

}

 

来自:http://hi.baidu.com/niuzaiwenjie/item/a9895b0ed2daaec691571870

分享到:
评论

相关推荐

    Android 连接Wifi和创建Wifi热点

    在Android系统中,连接Wi-Fi和创建Wi-Fi热点是两个重要的功能,对于开发者来说,理解和掌握这些知识至关重要。本文将详细解析这两个主题,并基于提供的文件`WifiApAdmin.java`和`MyTimerCheck.java`进行讨论。 首先...

    android WIFI 总结

    开发者可以通过这个类来控制WiFi的开启和关闭,以及获取当前连接的WiFi信息。 - **`WifiInfo`类**:该类提供了关于当前WiFi连接的详细信息,包括但不限于SSID(服务集标识符)、BSSID(基本服务集标识符)、MAC地址...

    Android 开启指定名称和密码的 Wifi热点 demo.zip

    在Android平台上,开发一个能够开启指定名称和密码的WiFi热点是一项常见的需求,尤其对于开发者来说,这可以帮助测试网络连接或者创建临时的网络分享环境。这个"Android 开启指定名称和密码的Wifi热点 demo.zip"是一...

    Android wifi扫描代码源码,实现热点扫描.zip

    这份"Android wifi扫描代码源码,实现热点扫描.zip"压缩包包含了一个名为"WifiDemo"的示例项目,可能还包含了相关的类库或资源文件(如"G"和"H")。以下是对这个主题的详细讲解: 首先,我们需要理解Android的WiFi...

    Android开发入门_WiFi_代码

    下面是一段简单的示例代码,用于展示如何在Android应用中控制WiFi的开启与关闭,以及检查WiFi状态: ```java package mars.wifi; import android.app.Activity; import android.content.Context; import android...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    android WIFI管理,Toast提示

    这段代码会短暂地在屏幕上显示"WIFI已开启"或"WIFI已关闭"的提示。 在实际开发中,为了增强用户体验,你可能还需要监听WIFI状态的变化,这可以通过注册`BroadcastReceiver`实现。当WIFI状态改变时,`...

    Android例子源码有大量注释的wifi连接例子

    示例代码中的大量注释对于初学者来说非常有价值,它们解释了每段代码的功能和目的,帮助开发者理解如何使用Wi-FiManager API以及相关的方法。 7. **异步处理**: 由于网络操作通常耗时,建议在子线程(如...

    wifi打开与关闭1.0

    标题 "WiFi打开与关闭1.0" 暗示我们关注的是一个可能针对Android设备的软件应用或系统功能,主要用于管理设备上的Wi-Fi连接。在Android操作系统中,Wi-Fi是移动设备连接到无线网络的主要方式,它允许用户访问互联网...

    Android 开启指定名称和密码的 Wifi热点 demo-IT计算机-毕业设计.zip

    在Android平台上,开发一个能够开启指定名称和密码的WiFi热点功能是常见的应用场景,尤其是在移动设备共享网络时。这个"Android 开启指定名称和密码的 Wifi热点 demo"是一个毕业设计项目,旨在帮助学生深入理解...

    设置Android设备WIFI在休眠时永不断开的代码实现

    总结来说,这段代码实现了一个简单的Android应用,该应用能够在运行时修改设备的Wi-Fi休眠策略,使其在休眠时保持开启。这对于需要连续网络连接的应用或服务是非常有用的。然而,开发者应该谨慎使用这种方法,因为它...

    Android应用源码之wifi扫描Demo源码.zip

    这个压缩包"Android应用源码之wifi扫描Demo源码.zip"包含了实现这一功能的示例代码,这对于理解和学习如何在Android上进行Wi-Fi扫描非常有帮助。下面将详细解释相关知识点。 1. **Wi-Fi扫描API**: Android提供了`...

    wifi-hot_demo.zip

    在Android平台上,开发一个Wi-Fi热点功能涉及到一系列的API调用和技术实现。"Wifi-hot_demo.zip"中的示例代码很可能是为了演示...通过学习和理解这段代码,开发者可以更好地掌握Android平台上的Wi-Fi热点管理和控制。

    wifi连接代码

    3. **打开/关闭WiFi**:使用`WifiManager.setWifiEnabled(true/false)`可以开启或关闭WiFi功能。 4. **扫描WiFi网络**:调用`WifiManager.scanResults`方法获取周围可用的WiFi网络列表。 5. **选择网络**:找到...

    android 网络控制DEMO

    开发者可以通过`WifiManager`开启、关闭WiFi,获取当前连接的WiFi信息,甚至扫描并连接到新的WiFi网络。在DEMO中,可能会展示如何动态更改设备的WiFi状态。 2. **数据用量监控**:Android系统提供了`...

    Android 开启指定名称和密码的 Wifi热点 demo

    总结来说,实现Android开启指定名称和密码的WiFi热点功能主要涉及`WifiManager`类的使用,创建`WifiConfiguration`对象,以及权限管理。理解这些知识点并正确运用,就能创建出一个完整的WiFi热点Demo。在...

    Python库 | AutoPy_Android-1.9.7.tar.gz

    3. 设备控制:获取设备状态信息,如GPS位置、电量、网络连接等,并能执行设备级别的操作,如开启/关闭WiFi,调节音量等。 4. 输入模拟:模拟用户输入,包括文本、数字,甚至复杂的键盘事件,为自动化测试提供了便利...

    wifi小widget,控制wifi开关

    标题中的“WiFi小widget”指的是Android或iOS等操作系统上的一个小部件,它允许用户方便地在主屏幕上开启或关闭WiFi连接,无需进入系统设置。这个小工具通常是一个快捷方式,节省了用户操作步骤,提高了设备使用的...

    android编程实现设置、打开wifi热点共享供他人连接的方法

    这段代码会尝试调用`setWifiApEnabled`方法,传入配置对象`apConfig`和一个布尔值来表示是否开启热点。请注意,如果已经打开了WiFi,你需要先关闭它,因为同一时间只能开启WiFi或热点,不能同时打开。关闭WiFi的代码...

    Android便携式热点的开启状态检测和SSID的获取方法

    在Android系统中,为了实现对便携式Wi-Fi热点(Portable Wi-Fi Hotspot)的管理,开发者需要了解一些特殊的API和技巧。本文将详细介绍如何检测Android便携式热点的开启状态以及如何获取其SSID。 首先,我们要关注的...

Global site tag (gtag.js) - Google Analytics