在android应用程序中可以很方便的使用wifi来处理不同的应用需求,灵活而方面的方法提供给开发者,这里定义了一些常用的wifi处理函数,参考android应用开发解密第八章内容
public class WifiAdmin {
private String tag = "WifiAdmin";
private WifiManager wifiManager;
private WifiInfo wifiInfo;
private List<ScanResult> wifiList;
private List<WifiConfiguration> wifiConfiguration;
WifiLock wifiLock;
public WifiAdmin(Context context) {
wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
wifiInfo = wifiManager.getConnectionInfo();
}
//连接wifi ssid
public void connected(){
for(WifiConfiguration config:getConfiguration()){
String ssid = config.SSID.replace("\"", "");
if(config.status!=1){
Log.i(tag, "ssid--------->"+ssid);
if(ssid.startsWith("OPLK")){
this.connectConfiguration(config.networkId);
while (getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
try {
Thread.currentThread();
Thread.sleep(100);
} catch (InterruptedException ie) {
}
}
break;
}
}
}
}
public int getWifiState(){
return wifiManager.getWifiState();
}
//打开wifi
public void openWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
}
//关闭wifi
public void closeWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
//允许一直使用wifi
public void acquireWifiLock() {
wifiLock.acquire();
}
//释放wifi
public void releaseWifiLock() {
if (wifiLock.isHeld()) {
wifiLock.acquire();
}
}
public void creatWifiLock() {
wifiLock = wifiManager.createWifiLock("Test");
}
public List<WifiConfiguration> getConfiguration() {
return wifiConfiguration;
}
public void connectConfiguration(int networkId) {
boolean isConn = wifiManager.enableNetwork(networkId, true);
Log.i(tag, "isConn----->"+isConn);
}
public void startScan() {
wifiManager.startScan();
wifiList = wifiManager.getScanResults();
wifiConfiguration = wifiManager.getConfiguredNetworks();
Log.i(tag, "start scan wifi list size------>"+wifiList.size());
}
public List<ScanResult> getWifiList() {
return wifiList;
}
public void LookUpScan() {
for (ScanResult result:wifiList) {
Log.i(tag, "wifi ssid---->"+result.SSID);
}
}
public String GetMacAddress() {
return (wifiInfo == null) ? "NULL" : wifiInfo.getMacAddress();
}
public String GetBSSID() {
return (wifiInfo == null) ? "NULL" : wifiInfo.getBSSID();
}
public int GetIPAddress() {
return (wifiInfo == null) ? 0 : wifiInfo.getIpAddress();
}
public int GetNetworkId() {
return (wifiInfo == null) ? 0 : wifiInfo.getNetworkId();
}
public String GetWifiInfo() {
return (wifiInfo == null) ? "NULL" : wifiInfo.toString();
}
public void AddNetwork(WifiConfiguration wcg) {
int wcgID = wifiManager.addNetwork(wcg);
wifiManager.enableNetwork(wcgID, true);
}
public void DisconnectWifi(int netId) {
wifiManager.disableNetwork(netId);
wifiManager.disconnect();
}
}
分享到:
相关推荐
Android WiFi Display功能优化 Android WiFi Display功能优化是指在Android系统中,WiFi Display功能的优化建议,以提高该功能的性能和可维护性。本文将从架构图、代码分析和优化建议三个方面对Android WiFi ...
在Android系统中,实现WiFi自动连接功能涉及到多个关键知识点,包括Android系统的权限管理、WiFi服务的使用、BroadcastReceiver监听以及用户界面的交互等。以下将详细介绍这些内容。 首先,要实现WiFi自动连接,...
在Android平台上,实现WiFi连接与断开是一项基本且重要的任务,尤其对于开发涉及网络功能的应用时。本节将深入探讨如何构建一个可以完全替代系统原生WiFi管理功能的应用,包括搜索WiFi热点、按信号强度排序、按钮...
Android内核中的网络子系统负责处理来自硬件的数据包,并将它们路由到适当的应用程序或服务。这个过程涉及到底层的驱动程序、内核网络协议栈以及用户空间的服务和API。 熟悉这一流程对于进行Android设备上WiFi驱动...
### Android WiFi 模块概述 Android系统的WiFi功能是其核心通信能力之一,它涉及多个层次的组件协同工作,包括用户界面、系统服务、底层驱动以及网络协议栈等。本篇文章将详细解析Android WiFi的工作流程,从打开...
4. **Android WiFi API**:Android提供了`WifiManager`类,它是处理WiFi连接的核心接口。我们可以使用它的`getScanResults()`方法来获取当前所有可扫描到的WiFi网络信息,`connect()`方法用于连接指定的WiFi网络。 ...
在Android平台上,Wi-Fi开发是一项重要的技术,它允许设备通过无线局域网(WLAN)进行通信,实现数据的高速传输。本示例主要涵盖了Wi-Fi的搜索、连接以及数据传输这三个关键环节,这对于构建涉及网络通信的Android...
【标题】"Android WiFi网络摄像头源代码"是一个开源项目,主要目标是实现通过WiFi网络将Android设备转换为网络摄像头的功能。这个项目对于开发者而言,是一个深入理解Android系统、网络编程以及多媒体处理的好资源。...
在Android平台上,开发一款应用程序来实现WiFi扫描和连接功能,主要涉及到Android Studio的使用以及Android系统的WiFi管理API。本文将详细讲解如何通过Android Studio编写代码来实现这一功能,包括检查WiFi状态、...
在Android系统中,WiFi列表是用户访问无线网络的关键接口,允许用户查看可用的WiFi热点并进行连接。这个功能对于移动设备来说至关重要,因为它确保了设备能够通过无线方式接入互联网。以下将详细介绍Android WiFi...
- 解析出的WiFi配置信息需要按照Android的WiFi配置格式进行处理。一个简单的WiFi配置XML示例如下: ```xml <WIFI> <SSID>MyWiFi <PSK>mysecretpassword <FQDN></FQDN> <TYPE>WPA </WIFI> ``` - 这个XML...
提供的"Android WIFI开发介绍.pdf"可能包含了对上述概念的详细讲解,可能涵盖如何解析WiFi扫描结果、处理连接事件、实现自定义的WiFi定位算法等内容。阅读源码可以帮助开发者更深入地理解Android WiFi系统的运作...
《Android WiFi 视频传输技术详解》 在移动设备中,Android WiFi 视频传输是一项实用的技术,它使得手机与手机之间能够进行实时的视频分享和通信。本文将深入探讨如何利用Android系统的API实现这一功能,通过源代码...
这个过程涉及到Android系统的网络管理服务、BroadcastReceiver、ContentResolver以及对WiFi扫描结果的处理。以下是对这个主题的详细阐述: 一、Android WiFi API Android提供了一个名为`WifiManager`的系统服务,它...
在Android系统中,实现WiFi的自定义控制是一项常见的需求,特别是在开发涉及网络连接的应用时。本文将深入探讨如何通过编程方式来控制Android设备上的WiFi开关,以满足特定场景下的功能需求。 首先,我们需要理解...
在Android平台上,实现指定WiFi热点自动连接是一项涉及网络管理和设备自动化功能的技术。这一特性对于许多应用,特别是那些依赖稳定网络连接的应用,如智能家居控制、远程监控等,具有重要意义。以下将详细阐述如何...
Android WIFI 应用层框架分析 Android WIFI 应用层框架分析是从应用程序的角度描述 Android WIFI 的工作流程,主要介绍了各个控制接收模块的数据走向,具体数据传输流程和所调用到的方法介绍。本文将从 WIFI 初始化...
Android 11 WiFi 模块 WiFi 打开函数调用流程图 Android 11 中的 WiFi 模块是如何打开的?下面是 WiFi 打开函数调用流程图的详细解释。 首先,用户打开 WiFi 时,系统会调用 WifiServiceImpl.java 中的 ...
开发涉及Wi-Fi功能的Android应用时,需要在`AndroidManifest.xml`文件中添加必要的权限,如`ACCESS_FINE_LOCATION`(用于提升Wi-Fi扫描精度)和`CHANGE_WIFI_STATE`(用于改变Wi-Fi状态)。 8. **监听Wi-Fi状态...
在实际操作中,用户可以自由地先打开以太网或WiFi,系统会自动处理这两种网络的共存问题。例如,如果先开启以太网,设备会优先使用以太网进行外网访问;如果先开启WiFi,设备会连接到已知的WiFi网络,同时以太网可...