Android_wifi属性及其设置
来源:互联网 发布:thinkphp5 子域名部署 编辑:程序博客网 时间:2024/06/05 00:28
Android开发中WiFi热点和WiFi属性的获取会经常被用到,下面就来记录下WiFi的名称、状态等属性以及获取周围WiFi热点的方法。
一、获取wifi属性
要获得Android系统相关的属性,通常需要获得相关的系统服务。在Android中最常用的是通过Manager来获得对对象的操作服务。WiFi相关的操作中需要用到两个Manager:WifiManager和ConnectivityManage:
[java] viewplaincopy
- public
WifiManager //管理wifiwifiManager; - public
ConnectivityManager //管理网络连接connectManager;
[java] viewplaincopy
- wifiManager
= //获得系统wifi服务(WifiManager) getSystemService(WIFI_SERVICE); - connectManager
= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
获得服务后,即可得到对象进而获得相关属性:
[java] viewplaincopy
- public
NetworkInfo //网络连接netInfo; - public
WifiInfo //wifiwifiInfo; - public
DhcpInfo "white-space:pre">dhcpInfo;
[java] viewplaincopy
- "code"
class="java">netInfo = connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - dhcpInfo
= wifiManager.getDhcpInfo(); - wifiInfo
= wifiManager.getConnectionInfo();
[java] viewplaincopy
- wifiInfo.getSSID();
[java] viewplaincopy
- String
wifiProperty "当前连接Wifi信息如下:"+wifiInfo.getSSID()+'\n'+= -
"ip:" + FormatString(dhcpInfo.ipAddress) + -
"mask:" + FormatString(dhcpInfo.netmask) + -
"netgate:"+ FormatString(dhcpInfo.gateway) + -
"dns:" + FormatString(dhcpInfo.dns1) ;
[java] viewplaincopy
- public
String intFormatString( value){ -
String strValue=""; -
byte[] ary = intToByteArray(value); -
for(int i=ary.length- 1;i>=0;i--){ -
strValue += (ary[i] & 0xFF); -
if(i>0){ -
strValue+="."; -
} -
} -
return strValue; -
} - public
intToByteArray( intvalue){ -
byte[] b new= byte[4]; -
for ( inti 0;= i 4;< i++){ -
int offset 1= (b.length - - 8;i) * -
b[i] = (byte) ((value 0xFF);>>> offset) & -
} -
return b; -
}
二、获取周围WiFi热点
wifiManager提供了一个方法getScanResults()来获得周围的wifi信息,其返回的是一组ScanResult对象,存放在list当中,每个ScanResult对象封装了一个wifi热点相关信息,通过ScanResult对象的属性即可获取到,最常用的两个属性为wifi名称(SSID)和信号强度(level):
[java] viewplaincopy
- ArrayList
list; //存放周围wifi热点对象的列表 - list
= (ArrayList) wifiManager.getScanResults();
[html] viewplaincopy
- //将搜索到的wifi根据信号强度从强到弱进行排序
- private
void sortByLevel(ArrayList<</span>ScanResult> list) { -
for(int i=0;i<</span>list.size();i++) -
for(int j=1;j<</span>list.size();j++) -
{ -
if(list.get(i).level<</span>list.get(j).level) //level属性即为强度 -
{ -
ScanResult temp = null; -
temp = list.get(i); -
list.set(i, list.get(j)); -
list.set(j, temp); -
} -
} -
}
如果要对wifi状态,网络连接状态进行判断等操作,不要忘了很重要的一点,就是在AndroidManifest.xml里添加权限:
[html] viewplaincopy
- <</span>uses-permission
android:name="android.permission.CHANGE_NETWORK_STATE"></</span>uses-permission> - <</span>uses-permission
android:name="android.permission.CHANGE_WIFI_STATE"></</span>uses-permission> - <</span>uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"></</span>uses-permission> - <</span>uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"></</span>uses-permission>
0 0
- Android_wifi属性及其设置
- Android_wifi属性及其设置2
- android_WIFI
- android_wifi
- Android_wifi移植
- android_wifi支持
- ListView快速滚动条及其他属性设置
- ext panel 及其 子类 动画属性 animateTarget 设置
- Intent及其七大属性及intent-filter设置
- Android10_Intent及其七大属性及intent-filter设置
- jsp中影响编码的属性及其设置小结
- (转)Android10_Intent及其七大属性及intent-filter设置
- Android11_Intent及其七大属性及intent-filter设置
- Intent及其七大属性及intent-filter设置
- Intent及其七大属性及intent-filter设置
- Intent及其七大属性及intent-filter设置
- Intent及其七大属性及intent-filter设置
- 07、Intent及其七大属性及intent-filter设置
- 在fragment中怎样实现AlertDialog
- ProgressDialog的基本用法
- Android加载底部布局
- 浮点数的精确误差
- 虚拟机安装FreeBSD
- Android_wifi属性及其设置
- Android_(入门篇)整理笔记
- Android_侧滑菜单
- HTML5基础视频课程 - 最实用的HTML教程
- Android_防止apk被反编译
- Android_weight
- 聊天室之-----界面的问题用到的curses
- Android_apk反编译方法
- Android_断点续传