- 浏览: 303852 次
- 性别:
- 来自: 广州
最新评论
-
qipa2015:
hao
Android中自定义SeekBar的背景颜色,进度条颜色,以及滑块的图片 -
chungehenyy:
Android中的JSON详细总结 -
wangys198:
请教下怎么加入一个jar包
说说APK反编译(代码插入)的那点事 -
andy199:
Android的TextView使用Html来处理图片显示、字体样式、超链接等 -
tyjxf:
加载图片是个烦人的事,我也正在困扰中
Android实现ListView异步加载图片
这里列了很多,但是大致可以分为四个主要的类ScanResult wifiConfiguration WifiInfo WifiManager
(1)ScanResult,主要是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息。
在我们进行wifi 搜索的时候,一般会搜到这些信息,首先是接入点名字、接入点信息的强弱、还有接入点使用的安全模式,是WPA、WPE。
打开这个类,我们可以看到以下几个信息
BSSID 接入点的地址,这里主要是指小范围几个无线设备相连接所获取的地址,比如说两台笔记本通过无线网卡进行连接,双方的无线网卡分配的地址。
SSID 网络的名字,当我们搜索一个网络时,就是靠这个来区分每个不同的网络接入点。
Capabilities 网络接入的性能,这里主要是来判断网络的加密方式等。
Frequency 频率,每一个频道交互的MHz 数。
Level 等级,主要来判断网络连接的优先数。
这里只提供了一个方法,就是将获得信息编程字符串toString()。
(2)wifiConfiguration 在我们连通一个wifi 接入点的时候,需要获取到的一些信息。大家可以跟我们有线的设备进行对比一下。
这里的数据相对来说比较复杂一下。
六个子类
WifiConfiguration.AuthAlgorthm 用来判断加密方法。
WifiConfiguration.GroupCipher 获取使用GroupCipher 的方法来进行加密。
WifiConfiguration.KeyMgmt 获取使用KeyMgmt 进行。
WifiConfiguration.PairwiseCipher 获取使用WPA 方式的加密。
WifiConfiguration.Protocol 获取使用哪一种协议进行加密。
wifiConfiguration.Status 获取当前网络的状态。
对于上述加密感兴趣的朋友,可以在网上搜索相关的内容。
(3)WifiInfo 在我们的wifi 已经连通了以后,可以通过这个类获得一些已经连通的wifi 连接的信息获取当前链接的信息,这里信息就比较简单了,这里简单介绍一下这里的方法:
getBSSID() 获取BSSID
getDetailedStateOf() 获取客户端的连通性
getHiddenSSID() 获得SSID 是否被隐藏
getIpAddress() 获取IP 地址
getLinkSpeed() 获得连接的速度
getMacAddress() 获得Mac 地址
getRssi() 获得802.11n 网络的信号
getSSID() 获得SSID
getSupplicanState() 返回具体客户端状态的信息
(4)wifiManager 这个不用说,就是用来管理我们的wifi 连接,这里已经定义好了一些类,可以供我们使用。这里来说相对复杂,里面的内容比较多,但是通过字面意思,我们还是可以获得很多相关的信息。这个类里面预先定义了许多常量,我们可以直接使用,不用再次创建。
这里还是简单介绍一下这里的方法:
addNetwork(WifiConfiguration config) 通过获取到的网络的链接状态信息,来添加网络
calculateSignalLevel(int rssi , int numLevels) 计算信号的等级
compareSignalLevel(int rssiA, int rssiB) 对比连接A 和连接B
createWifiLock(int lockType, String tag) 创建一个wifi 锁,锁定当前的wifi 连接
disableNetwork(int netId) 让一个网络连接失效
disconnect() 断开连接
enableNetwork(int netId, Boolean disableOthers) 连接一个连接
getConfiguredNetworks() 获取网络连接的状态
getConnectionInfo() 获取当前连接的信息
getDhcpInfo() 获取DHCP 的信息
getScanResulats() 获取扫描测试的结果
getWifiState() 获取一个wifi 接入点是否有效
isWifiEnabled() 判断一个wifi 连接是否有效
pingSupplicant() ping 一个连接,判断是否能连通
ressociate() 即便连接没有准备好,也要连通
reconnect() 如果连接准备好了,连通
removeNetwork() 移除某一个网络
saveConfiguration() 保留一个配置信息
setWifiEnabled() 让一个连接有效
startScan() 开始扫描
updateNetwork(WifiConfiguration config) 更新一个网络连接的信息
此外wifiManaer 还提供了一个内部的子类,也就是wifiManagerLock,WifiManagerLock 的作用是这样的,在普通的状态下,如果我们的wifi 的状态处于闲置,那么网络的连通,将会暂时中断。但是如果我们把当前的网络状态锁上,那么wifi 连通将会保持在一定状态,当然接触锁定之后,就会恢复常态.
//附一个WifiAdmin 管理类: package youcan.text; import java.util.List; import android.content.Context; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.WifiLock; public class WifiAdmin { // 定义WifiManager对象 private WifiManager mWifiManager; // 定义WifiInfo对象 private WifiInfo mWifiInfo; // 扫描出的网络连接列表 private List<ScanResult> mWifiList; // 网络连接列表 private List<WifiConfiguration> mWifiConfiguration; // 定义一个WifiLock WifiLock mWifiLock; // 构造器 public WifiAdmin(Context context) { // 取得WifiManager对象 mWifiManager = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); // 取得WifiInfo对象 mWifiInfo = mWifiManager.getConnectionInfo(); } // 得到WifiManager对象 public WifiManager GetWifiManager() { return mWifiManager; } // 打开WIFI public void OpenWifi() { if (!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(true); } } // 关闭WIFI public void CloseWifi() { if (!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(false); } } // 锁定WifiLock public void AcquireWifiLock() { mWifiLock.acquire(); } // 解锁WifiLock public void ReleaseWifiLock() { // 判断时候锁定 if (mWifiLock.isHeld()) { mWifiLock.acquire(); } } // 创建一个WifiLock public void CreatWifiLock() { mWifiLock = mWifiManager.createWifiLock("Test"); } // 得到配置好的网络 public List<WifiConfiguration> GetConfiguration() { return mWifiConfiguration; } // 指定配置好的网络进行连接 public void ConnectConfiguration(int index) { // 索引大于配置好的网络索引返回 if (index > mWifiConfiguration.size()) { return; } // 连接配置好的指定ID的网络 mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true); } public void StartScan() { mWifiManager.startScan(); // 得到扫描结果 mWifiList = mWifiManager.getScanResults(); // 得到配置好的网络连接 mWifiConfiguration = mWifiManager.getConfiguredNetworks(); } // 得到网络列表 public List<ScanResult> GetWifiList() { return mWifiList; } // 查看扫描结果 public StringBuilder LookUpScan() { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < mWifiList.size(); i++) { stringBuilder .append("Index_" + new Integer(i + 1).toString() + ":"); // 将ScanResult信息转换成一个字符串包 // 其中把包括:BSSID、SSID、capabilities、frequency、level stringBuilder.append((mWifiList.get(i)).toString()); stringBuilder.append("\n"); } return stringBuilder; } // 得到MAC地址 public String GetMacAddress() { return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress(); } // 得到接入点的BSSID public String GetBSSID() { return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID(); } // 得到IP地址 public int GetIPAddress() { return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress(); } // 得到连接的ID public int GetNetworkId() { return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId(); } // 得到WifiInfo的所有信息包 public String GetWifiInfo() { return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString(); } // 添加一个网络并连接 public void AddNetwork(WifiConfiguration wcg) { int wcgID = mWifiManager.addNetwork(wcg); mWifiManager.enableNetwork(wcgID, true); } // 断开指定ID的网络 public void DisconnectWifi(int netId) { mWifiManager.disableNetwork(netId); mWifiManager.disconnect(); } }
发表评论
-
Android 学习资料大集合
2012-02-22 11:23 2556<script type="t ... -
总结了近百个Android优秀开源项目,覆盖Android开发的每个
2012-02-21 11:21 1965Android开发又将带来新一轮热潮,很多开发者都投入到这 ... -
说说APK反编译(代码插入)的那点事
2012-02-21 09:54 9082很多人热衷于逆向工程,其过程中既可以学习作者的思路,又可以锻炼 ... -
(转)一种新的MAT使用方法分析内存溢出问题
2012-02-21 09:42 1991相信很多人都用过MAT来分析内存溢出,而且网上有很多的使用方法 ... -
(转)Android* 应用性能调试
2012-02-08 09:33 1513概述 创造愉快用户体验的关键是开发响应快捷的应用。借助And ... -
android 从assets和res中读取文件(转)
2012-02-03 15:02 25411. 相关文件夹介绍 ... -
textview 超链接去掉下划线和设置超链接颜色
2011-12-06 17:15 3795/** * 点击超链接时打开其他博主资料页面 * ... -
按钮Listview等点击效果
2011-11-12 22:58 4016想设置listview中每行在点击、选中等不同状态下有不同的背 ... -
android 获取视频和图片的缩略图
2011-11-12 01:53 118251 在显示视频图片列表时,发送彩信时,制作幻灯片时都需要显示视 ... -
调用android系统图标
2011-10-31 16:54 2848Android系统中自带了很多图标,我们的程序可以方便使用。 ... -
The content of the adapter has changed but ListView did not receive a notificati
2011-10-27 15:43 1168在Android开发过程中,使用了大量的ListView,发现 ... -
android的上下文菜单---context menu
2011-09-23 09:53 1266android的菜单有三种: ... -
选择系统图片方法时返回图片真实路径
2011-09-21 10:36 1625protected void onActivityResul ... -
android一些技巧
2011-09-01 18:08 1508EditText ed = ... -
android TextView中超链接的事件捕捉(textview上LINK的点击事件)
2011-08-19 18:43 2530package com.cm; import java. ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2011-08-19 18:38 4567转载:http://my.oschina.net/java ... -
Android 设置EditText显示或隐藏密码
2011-08-17 16:37 2237设置EditText显示或隐藏密码. 在CheckBox的o ... -
android调用系统资源裁剪图片
2011-08-08 12:52 28491 import java.io.File; 2 import ... -
Android 复制 粘贴
2011-07-25 10:18 2529Android 复制 粘贴 ClipboardManager ... -
三款Json查看小工具
2011-07-07 10:55 2697JSON(JavaScript Object Nota ...
相关推荐
SDK.for.NET.v5.0.25.631
RemObjects.SDK.for.NET.v6.0.39.777.Retail.Include.License.rar
anycad操作cad文件,可以cad转pdf 转图片 anycad操作cad文件,可以cad转pdf 转图片
org.apache.commons.net org.apache.commons.net.bsd org.apache.commons.net.chargen org.apache.commons.net.daytime org.apache.commons.net.discard org.apache.commons.net.echo org.apache.commons.net....
天地图 Android SDK v3.01,包含jar包和libs
ArcGIS Runtime SDK for .NET 100.6.0 官方实例代码,其中包括– UWP, WPF, Xamarin.Android, Xamarin.iOS, and Xamarin.Forms 。
This book starts with the benefits of .NET including its fundamental tasks and tools where you will learn .NET SDK tools and the ILDasm tool. This is followed by a detailed discussion on code ...
Android SDK (SDK Platforms)-android-30.zip
Android sdk.zip包含26,27,p三个版本,根据需要下载
最新Android SDK (4.1): 下载安装顺序: 首先下载安装 【Android 4.1 SDK Tools 20.0.1】 http://download.csdn.net/detail/joe9i0/4462908 然后下载以下包解压到SDK Tools的安装目录 【ARM EABI v7a System ...
Android SDK (SDK Platforms)-android-31.zip
Android SDK (SDK Platforms)-android-32.zip
Google.Android.SDK开发范例大全.pdf Google.Android.SDK开发范例大全.pdf Google.Android.SDK开发范例大全.pdf
Android SDK (SDK Platforms)-android-29.zip
SDK提供主动获取图像的接口,用户可以在开启取流后直接调用此接口获取图像,也可以使用异步方式(线程、定时器等)获取图像。 SDK提供主动获取图像的接口,用户可以在开启取流后直接调用此接口获取图像,也可以...
最新Android SDK (4.1): 下载安装顺序: 首先下载安装 【Android 4.1 SDK Tools 20.0.1】 http://download.csdn.net/detail/joe9i0/4462908 然后下载以下包解压到SDK Tools的安装目录 【ARM EABI v7a System ...
opencv-3.4.13-android-sdk .zip压缩包
Android SDK (SDK Platforms)-android-26.zip
Android SDK (SDK Platforms)-android-25.zip
Android SDK (SDK Platforms)-android-28.zip