`
fokman
  • 浏览: 238827 次
  • 性别: 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_demo

    Android对指定的WIFI进行一系列的操作,比如配置一个新的WIFI网络,密码输入错误判断,连接与为连接状态的处理。还有很多其他处理工作,在代码中都有相关的说明。

    android如何打开系统wifi、蓝牙等设置界面

    关于网络连接或者使用蓝牙等设备时,需要判断设备是否打开或者出错以后的提示处理,需要用到将界面转向对于的设备设置界面,这里介绍具体转到系统设置界面的方法

    Android Wifi的forget()操作实例详解

    Android Wifi的forget()操作实例详解 我们在处理某个Wifi连接时,有时会需要忘掉当前连接的密码信息。执行这项操作,我们需要调用WifiManager::forget()函数: /** * Delete the network in the supplicant ...

    Android应用程序可分析WiFi信号。-Android开发

    使用WiFi Analyzer来优化您的WiFi网络新闻:WiFi Authority被Android Authority评为Android上15个最有用的应用程序之一Gizmodo将WiFi Analyzer评为修复《 WiFi》 WiFi分析器的最佳应用之一,在《纽约时报》的《断线...

    使用wifi和PDR测试Android应用进行室内定位.zip

    2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...

    【delphi】Android系统状态广播消息感知控件及演示程序源代码(老吴)

    【delphi】Android系统状态广播消息感知控件及演示程序源代码,详细介绍了Android系统消息广播感知原理。 控件感知功能包括: 1. 感知蓝颜状态变化 2. 感知WiFI状态变化 3. 感知电源状态变化 4. 感知网络状态变化 5....

    Android-app.rar

    Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理 Android例子源码实现Windows8风格的Dialog Android例子源码强大的listview效果集合项目 Android例子源码模仿IOS音乐的可拖动导航栏功能 Android例子源码模仿...

    Android10自动连接WiFi问题的解决

    本文主要说明扫码之后自动连接WiFi的一些处理,扫码的流程相对简单,网上教程也比较多,对于目前Android各个版本也没有太多变化。 问题描述: 最近在做项目的时候,发现以前的项目有扫描二维码自动连接WiFi的功能,...

    Android 10自动连接WiFi问题

    说明:本文主要说明扫码之后自动连接WiFi的一些处理,扫码的流程相对简单,网上教程也比较多,对于目前Android各个版本也没有太多变化。 问题描述:最近在做项目的时候,发现以前的项目有扫描二维码自动连接WiFi的...

    Android Studio下无线调试的方法

    Android Studio是功能强大的,各种各样的插件让Android Studio能够处理各种情况。 1.adb wifi 点击Ctrl+Alt+S打开Android Studio的Setting,在搜索框输入adb wifi 选中adb wifi安装完成后重启Studio就可以了 ...

    Android应用源码安卓源码(172个合集).zip

    Android有未接来电后处理(判断未接来电).rar Android模仿乐淘的应用程序分析源码.zip Android游戏源码——忍者快跑.rar Android自动发送短信.rar Android自动开关机实现.rar Android视频采集+RTSP完整代码(可用) ...

    Android手机WiFi连接故障处理指南

    使用者需要使用安卓手机连接Wi-Fi时,通常情况的做法就是打开设置,选择想要使用的网络。

    一对多投屏项目源码+项目说明(多台Android设备通过连接同一WiFi).zip

    一对多投屏项目源码+项目说明(多台Android设备通过连接同一WiFi,使用udp查找设备,UDP传输视频声音已及回控数据。由于录制内置声音与处理回控需要系统权限,所以需要将发送端编译进系统;成为系统级别的应用).zip...

    基于基站定位的android jar包

    android.permission.ACCESS_WIFI_STATE – 获取已连接WIFI信息 7 返回定位结果说明 enum ResultField{ status, //状态码,0-定位成功,其他失败 locMode, //定位方式, 0-未知, 1-基站, 2-WIFI, 3-混合 lon...

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    android源码包集合2

    Android有未接来电后处理(判断未接来电).rar Android游戏源码——忍者快跑.rar android源代码分析.rar android源码一个柱状图的Demo.zip android源码下载工具.zip android源码捏苍蝇.zip Android自动发送短信.rar ...

    Android客户端与MFC在WiFi下通信.zip

    java与C++网络通信,MFC,android,字符串处理 你很难找到那么整齐简洁的例子了,网上这样的例子很少。

    android开发资料大全

    Android Wifi方法大全【总有一种方法适合你】 android开发环境搭建篇详尽的教程实例汇 图形图像之图像处理(缩放 旋转 转化) android开发之【腾讯微博android客户端开发】Parameter类和SyncHttp 网友自己写的...

    Android例子源码二维码扫描NFC读写WIFI小车综合.zip

    本项目据说是谷歌全国应用大赛二等奖作品源码,demo分为四个部分,分别是二维码扫描和识别、NFC读写、WIFI链接和遥控小车。二维码扫描使用的是常规的Zxing。其他部分因为小编技术有限也不妄加评论了,需要的看官可以...

    Android高级编程--源代码

    4.5.4 处理菜单选择 103 4.5.5 子菜单和上下文菜单 103 4.5.6 To-Do List示例续 105 4.6 小结 111 第5章 Intent、广播接收器、Adapter和Internet 113 5.1 Intent简介 113 5.1.1 使用Intent来启动活动 114 ...

Global site tag (gtag.js) - Google Analytics