`
fokman
  • 浏览: 243263 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

android wifi 处理

 
阅读更多

在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 Display功能的优化建议,以提高该功能的性能和可维护性。本文将从架构图、代码分析和优化建议三个方面对Android WiFi ...

    androidwifi自动连接

    在Android系统中,实现WiFi自动连接功能涉及到多个关键知识点,包括Android系统的权限管理、WiFi服务的使用、BroadcastReceiver监听以及用户界面的交互等。以下将详细介绍这些内容。 首先,要实现WiFi自动连接,...

    android wifi连接与断开

    在Android平台上,实现WiFi连接与断开是一项基本且重要的任务,尤其对于开发涉及网络功能的应用时。本节将深入探讨如何构建一个可以完全替代系统原生WiFi管理功能的应用,包括搜索WiFi热点、按信号强度排序、按钮...

    Android WIFI驱动工作流程

    Android内核中的网络子系统负责处理来自硬件的数据包,并将它们路由到适当的应用程序或服务。这个过程涉及到底层的驱动程序、内核网络协议栈以及用户空间的服务和API。 熟悉这一流程对于进行Android设备上WiFi驱动...

    android wifi 的大致流程图

    ### Android WiFi 模块概述 Android系统的WiFi功能是其核心通信能力之一,它涉及多个层次的组件协同工作,包括用户界面、系统服务、底层驱动以及网络协议栈等。本篇文章将详细解析Android WiFi的工作流程,从打开...

    Unity Android Wifi扫描连接

    4. **Android WiFi API**:Android提供了`WifiManager`类,它是处理WiFi连接的核心接口。我们可以使用它的`getScanResults()`方法来获取当前所有可扫描到的WiFi网络信息,`connect()`方法用于连接指定的WiFi网络。 ...

    Android Wifi开发Demo示例

    在Android平台上,Wi-Fi开发是一项重要的技术,它允许设备通过无线局域网(WLAN)进行通信,实现数据的高速传输。本示例主要涵盖了Wi-Fi的搜索、连接以及数据传输这三个关键环节,这对于构建涉及网络通信的Android...

    android wifi网络摄像头源代码

    【标题】"Android WiFi网络摄像头源代码"是一个开源项目,主要目标是实现通过WiFi网络将Android设备转换为网络摄像头的功能。这个项目对于开发者而言,是一个深入理解Android系统、网络编程以及多媒体处理的好资源。...

    android studio wifi 扫描 连接代码

    在Android平台上,开发一款应用程序来实现WiFi扫描和连接功能,主要涉及到Android Studio的使用以及Android系统的WiFi管理API。本文将详细讲解如何通过Android Studio编写代码来实现这一功能,包括检查WiFi状态、...

    android wifi列表,点击连接

    在Android系统中,WiFi列表是用户访问无线网络的关键接口,允许用户查看可用的WiFi热点并进行连接。这个功能对于移动设备来说至关重要,因为它确保了设备能够通过无线方式接入互联网。以下将详细介绍Android WiFi...

    Android 扫描 wifi 二维码自动连接

    - 解析出的WiFi配置信息需要按照Android的WiFi配置格式进行处理。一个简单的WiFi配置XML示例如下: ```xml &lt;WIFI&gt; &lt;SSID&gt;MyWiFi &lt;PSK&gt;mysecretpassword &lt;FQDN&gt;&lt;/FQDN&gt; &lt;TYPE&gt;WPA &lt;/WIFI&gt; ``` - 这个XML...

    Android-WIFI.rar_WiFi模块程序_android wifi_android wifi slam_android

    提供的"Android WIFI开发介绍.pdf"可能包含了对上述概念的详细讲解,可能涵盖如何解析WiFi扫描结果、处理连接事件、实现自定义的WiFi定位算法等内容。阅读源码可以帮助开发者更深入地理解Android WiFi系统的运作...

    android wifi 视屏传输

    《Android WiFi 视频传输技术详解》 在移动设备中,Android WiFi 视频传输是一项实用的技术,它使得手机与手机之间能够进行实时的视频分享和通信。本文将深入探讨如何利用Android系统的API实现这一功能,通过源代码...

    Android加载附近WiFi列表,并自动更新

    这个过程涉及到Android系统的网络管理服务、BroadcastReceiver、ContentResolver以及对WiFi扫描结果的处理。以下是对这个主题的详细阐述: 一、Android WiFi API Android提供了一个名为`WifiManager`的系统服务,它...

    Android wifi自定义控制

    在Android系统中,实现WiFi的自定义控制是一项常见的需求,特别是在开发涉及网络连接的应用时。本文将深入探讨如何通过编程方式来控制Android设备上的WiFi开关,以满足特定场景下的功能需求。 首先,我们需要理解...

    android 指定wifi热点自动连接

    在Android平台上,实现指定WiFi热点自动连接是一项涉及网络管理和设备自动化功能的技术。这一特性对于许多应用,特别是那些依赖稳定网络连接的应用,如智能家居控制、远程监控等,具有重要意义。以下将详细阐述如何...

    android wifi应用层框架分析

    Android WIFI 应用层框架分析 Android WIFI 应用层框架分析是从应用程序的角度描述 Android WIFI 的工作流程,主要介绍了各个控制接收模块的数据走向,具体数据传输流程和所调用到的方法介绍。本文将从 WIFI 初始化...

    Android Wifi连接demo

    开发涉及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 打开函数调用流程图 Android 11 中的 WiFi 模块是如何打开的?下面是 WiFi 打开函数调用流程图的详细解释。 首先,用户打开 WiFi 时,系统会调用 WifiServiceImpl.java 中的 ...

    Android 安卓手机(android)wifi传送文件源码.zip

    在Android平台上,无线文件传输是开发者经常需要处理的一项任务,特别是在移动设备间或者移动设备与电脑间分享数据时。这个“Android 安卓手机(android)wifi传送文件源码.zip”压缩包提供了一种实现此类功能的源...

Global site tag (gtag.js) - Google Analytics