在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 初始化...
开发涉及Wi-Fi功能的Android应用时,需要在`AndroidManifest.xml`文件中添加必要的权限,如`ACCESS_FINE_LOCATION`(用于提升Wi-Fi扫描精度)和`CHANGE_WIFI_STATE`(用于改变Wi-Fi状态)。 8. **监听Wi-Fi状态...
Android 11 WiFi 模块 WiFi 打开函数调用流程图 Android 11 中的 WiFi 模块是如何打开的?下面是 WiFi 打开函数调用流程图的详细解释。 首先,用户打开 WiFi 时,系统会调用 WifiServiceImpl.java 中的 ...
在Android平台上,无线文件传输是开发者经常需要处理的一项任务,特别是在移动设备间或者移动设备与电脑间分享数据时。这个“Android 安卓手机(android)wifi传送文件源码.zip”压缩包提供了一种实现此类功能的源...