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;
public class WifiAdmin
{
//定义WifiManager对象
private WifiManager mWifiManager;
//定义WifiInfo对象
private WifiInfo mWifiInfo;
//扫描出的网络连接列表
private List<ScanResult> mWifiList;
//网络连接列表
private List<WifiConfiguration> mWifiConfiguration;
//定义一个WifiLock
WifiLock mWifiLock;
//构造器
public WifiAdmin(Context context)
{
//取得WifiManager对象
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//取得WifiInfo对象
mWifiInfo = mWifiManager.getConnectionInfo();
}
//打开WIFI
public void OpenWifi()
{
if (!mWifiManager.isWifiEnabled())
{
mWifiManager.setWifiEnabled(true);
}
}
//关闭WIFI
public void CloseWifi()
{
if (!mWifiManager.isWifiEnabled())
{
mWifiManager.setWifiEnabled(false);
}
}
//锁定WifiLock,当下载大文件时需要锁定
public void AcquireWifiLock()
{
mWifiLock.acquire();
}
//解锁WifiLock
public void ReleaseWifiLock()
{
//判断时候锁定
if (mWifiLock.isHeld())
{
mWifiLock.acquire();
}
}
//创建一个WifiLock
public void CreatWifiLock()
{
mWifiLock = mWifiManager.createWifiLock("Test");
}
//得到配置好的网络
public List<WifiConfiguration> GetConfiguration()
{
return mWifiConfiguration;
}
//指定配置好的网络进行连接
public void ConnectConfiguration(int index)
{
//索引大于配置好的网络索引返回
if(index > mWifiConfiguration.size())
{
return;
}
//连接配置好的指定ID的网络
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);
}
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();
}
}
分享到:
相关推荐
总的来说,`AndroidStudio_WiFiManager-master`项目是一个实践性的示例,展示了如何在Android应用中集成和操作Wi-Fi功能,这对于学习和理解Android系统的网络管理和开发技巧非常有帮助。通过深入研究这个项目,...
Android之Wi-Fi学习涵盖了从基本的Wi-Fi API使用到更高级的Wi-Fi热点管理、Wi-Fi扫描与连接策略等多个方面。下面,我们将深入探讨这些知识点。 1. **Wi-Fi API入门**: - `WifiManager`:这是Android系统提供的...
通过`WifiManager-master.zip` 的学习,开发者可以深入理解如何在Android应用中实现Wi-Fi网络的管理和连接。实践中,开发者还可以根据需求扩展功能,如创建Wi-Fi热点、处理Wi-Fi认证和加密、优化连接性能等。
在这个"Android高级应用源码-Android 开启指定名称和密码的Wifi热点 demo"中,开发者可以学习到如何利用Android SDK中的Wi-Fi Manager API来创建和管理自定义的WiFi热点。 首先,我们需要了解Android的Wi-Fi ...
这个压缩包文件“WifiManager.rar”很可能包含了一系列与Android Wi-Fi管理相关的代码示例或者库,可能涉及到开启、关闭Wi-Fi,扫描可用网络,连接特定的Wi-Fi热点等功能。由于描述中提到“太多无法一一验证是否可用...
总结,这个“Android之Wifi学习教程”应该包含如何使用`WifiManager`进行Wi-Fi操作,以及在Android应用中实现网络请求的方法,同时强调了权限管理和运行时权限的重要性。通过深入学习和实践,开发者可以创建出能够...
### Android之Wifi学习教程 #### 一、引言 随着移动互联网的发展,Wi-Fi作为最常见的无线网络连接方式之一,在Android应用开发中占据了重要的位置。掌握Android Wi-Fi开发不仅能够提升应用的功能性和用户体验,还...
1. **Wi-Fi Manager**: Android系统提供了一个名为`WifiManager`的系统服务,它允许应用程序进行Wi-Fi网络的控制和管理。开发者可以通过`getSystemService(Context.WIFI_SERVICE)`获取`WifiManager`的实例。 2. **...
通过这个源码示例,开发者不仅可以学习到如何开启WiFi热点,还能了解Android权限管理、系统服务交互、状态监听等相关知识,进一步提升Android应用开发能力。在实际项目中,可以根据具体需求进行功能扩展,例如添加...
文档中的"Android之Wifi学习教程.doc"和"Android之Wifi学习教程 (2).doc"提供了详细的源码示例和步骤解析,供开发者参考学习。同时,"Wifi.zip"和"Wifi (2).zip"可能包含额外的示例项目,可以下载后进行实际操作,...
这个"Android代码-之Wifi学习教程.zip"文件显然包含了关于如何在Android系统上编程实现Wi-Fi功能的教学资料。下面将详细介绍Android Wi-Fi编程的关键知识点。 1. **Wi-Fi Manager**: Android提供了一个名为`...
Android系统提供了一个名为`WifiManager`的系统服务,它允许应用程序与WiFi硬件进行交互。通过调用`getSystemService(Context.WIFI_SERVICE)`方法,你可以获取到`WifiManager`的实例。 2. **扫描结果回调**: 要...
标题“android学习笔记”表明,本文档是一份关于安卓操作系统学习的笔记。Android操作系统是谷歌公司开发的一个基于Linux内核的开源操作系统,广泛应用于智能手机和平板电脑等移动设备。 描述中提到的“android的...
这份"Android应用源码之之Wifi学习教程"将为我们提供宝贵的实践资源,帮助开发者深入理解如何在Android系统中操作Wi-Fi接口。下面我们将详细探讨这个主题中的关键知识点。 1. **Android Wi-Fi API** - `...
在Android平台上,Wi-Fi功能是移动设备连接到无线...通过学习以上知识点,开发者能够熟练地在Android应用中集成Wi-Fi功能,为用户提供更好的网络体验。在实际开发中,要结合具体需求灵活运用,同时注意性能和用户体验。
在深入学习Android Wi-Fi源码时,还需要了解` Binder `机制,因为Wi-Fi服务是跨进程的,`WifiService`通过`Binder`将接口暴露给其他进程,实现进程间通信。 此外,了解`Netlink`协议族和`nl80211`用户空间接口也是...
以下是关于Android Wi-Fi学习的一些关键知识点: 1. **Wi-Fi服务(WifiService)**: 在Android系统中,Wi-Fi服务是管理Wi-Fi连接的核心组件,它负责Wi-Fi的开启、关闭、扫描网络、连接和断开网络等操作。这个服务...
在Android平台上,连接WiFi和创建WiFi热点是两个...开发者可以通过阅读和学习这个项目,了解如何在Android应用中实现连接WiFi和创建WiFi热点的功能,这对于开发涉及网络共享或者需要自定义网络连接的应用非常有帮助。
这个压缩包“Android程序研发源码Android之Wifi学习教程.zip”显然包含了关于Android Wi-Fi编程的源码示例和教程,这对于开发者深入理解如何在Android应用中集成Wi-Fi功能非常有帮助。以下是一些关于Android Wi-Fi...
`WifiManager`是Android系统服务的一个接口,它提供了对Wi-Fi功能的全面管理。开发者可以通过这个类来开启或关闭Wi-Fi,获取当前连接的Wi-Fi状态,以及执行扫描以查找可用的Wi-Fi网络。以下是一些常用方法: - `...