在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进行一系列的操作,比如配置一个新的WIFI网络,密码输入错误判断,连接与为连接状态的处理。还有很多其他处理工作,在代码中都有相关的说明。
关于网络连接或者使用蓝牙等设备时,需要判断设备是否打开或者出错以后的提示处理,需要用到将界面转向对于的设备设置界面,这里介绍具体转到系统设置界面的方法
Android Wifi的forget()操作实例详解 我们在处理某个Wifi连接时,有时会需要忘掉当前连接的密码信息。执行这项操作,我们需要调用WifiManager::forget()函数: /** * Delete the network in the supplicant ...
使用WiFi Analyzer来优化您的WiFi网络新闻:WiFi Authority被Android Authority评为Android上15个最有用的应用程序之一Gizmodo将WiFi Analyzer评为修复《 WiFi》 WiFi分析器的最佳应用之一,在《纽约时报》的《断线...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
【delphi】Android系统状态广播消息感知控件及演示程序源代码,详细介绍了Android系统消息广播感知原理。 控件感知功能包括: 1. 感知蓝颜状态变化 2. 感知WiFI状态变化 3. 感知电源状态变化 4. 感知网络状态变化 5....
Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理 Android例子源码实现Windows8风格的Dialog Android例子源码强大的listview效果集合项目 Android例子源码模仿IOS音乐的可拖动导航栏功能 Android例子源码模仿...
本文主要说明扫码之后自动连接WiFi的一些处理,扫码的流程相对简单,网上教程也比较多,对于目前Android各个版本也没有太多变化。 问题描述: 最近在做项目的时候,发现以前的项目有扫描二维码自动连接WiFi的功能,...
说明:本文主要说明扫码之后自动连接WiFi的一些处理,扫码的流程相对简单,网上教程也比较多,对于目前Android各个版本也没有太多变化。 问题描述:最近在做项目的时候,发现以前的项目有扫描二维码自动连接WiFi的...
Android Studio是功能强大的,各种各样的插件让Android Studio能够处理各种情况。 1.adb wifi 点击Ctrl+Alt+S打开Android Studio的Setting,在搜索框输入adb wifi 选中adb wifi安装完成后重启Studio就可以了 ...
Android有未接来电后处理(判断未接来电).rar Android模仿乐淘的应用程序分析源码.zip Android游戏源码——忍者快跑.rar Android自动发送短信.rar Android自动开关机实现.rar Android视频采集+RTSP完整代码(可用) ...
使用者需要使用安卓手机连接Wi-Fi时,通常情况的做法就是打开设置,选择想要使用的网络。
一对多投屏项目源码+项目说明(多台Android设备通过连接同一WiFi,使用udp查找设备,UDP传输视频声音已及回控数据。由于录制内置声音与处理回控需要系统权限,所以需要将发送端编译进系统;成为系统级别的应用).zip...
android.permission.ACCESS_WIFI_STATE – 获取已连接WIFI信息 7 返回定位结果说明 enum ResultField{ status, //状态码,0-定位成功,其他失败 locMode, //定位方式, 0-未知, 1-基站, 2-WIFI, 3-混合 lon...
《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...
Android有未接来电后处理(判断未接来电).rar Android游戏源码——忍者快跑.rar android源代码分析.rar android源码一个柱状图的Demo.zip android源码下载工具.zip android源码捏苍蝇.zip Android自动发送短信.rar ...
java与C++网络通信,MFC,android,字符串处理 你很难找到那么整齐简洁的例子了,网上这样的例子很少。
Android Wifi方法大全【总有一种方法适合你】 android开发环境搭建篇详尽的教程实例汇 图形图像之图像处理(缩放 旋转 转化) android开发之【腾讯微博android客户端开发】Parameter类和SyncHttp 网友自己写的...
本项目据说是谷歌全国应用大赛二等奖作品源码,demo分为四个部分,分别是二维码扫描和识别、NFC读写、WIFI链接和遥控小车。二维码扫描使用的是常规的Zxing。其他部分因为小编技术有限也不妄加评论了,需要的看官可以...
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 ...