WIFI相关
来源:互联网 发布:网络8888端口 编辑:程序博客网 时间:2024/06/05 16:48
packageorg.sunchao;
importjava.util.List;
importandroid.content.Context;
importandroid.net.wifi.ScanResult;
importandroid.net.wifi.WifiConfiguration;
importandroid.net.wifi.WifiInfo;
importandroid.net.wifi.WifiManager;
importandroid.net.wifi.WifiManager.WifiLock;
importandroid.util.Log;
publicclassWifiAdmin {
privatefinalstaticStringTAG="WifiAdmin";
privateStringBuffermStringBuffer=newStringBuffer();
privateList<ScanResult>listResult;
privateScanResultmScanResult;
// 定义WifiManager对象
privateWifiManagermWifiManager;
// 定义WifiInfo对象
privateWifiInfomWifiInfo;
// 网络连接列表
privateList<WifiConfiguration>mWifiConfiguration;
// 定义一个WifiLock
WifiLockmWifiLock;
/**
* 构造方法
*/
publicWifiAdmin(Contextcontext) {
mWifiManager= (WifiManager)context
.getSystemService(Context.WIFI_SERVICE);
mWifiInfo=mWifiManager.getConnectionInfo();
}
/**
* 打开Wifi网卡
*/
publicvoidopenNetCard() {
if(!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);
}
}
/**
* 关闭Wifi网卡
*/
publicvoidcloseNetCard() {
if(mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
}
/**
* 检查当前Wifi网卡状态
*/
publicvoidcheckNetCardState() {
if(mWifiManager.getWifiState() == 0) {
Log.i(TAG,"网卡正在关闭");
}elseif(mWifiManager.getWifiState() == 1) {
Log.i(TAG,"网卡已经关闭");
}elseif(mWifiManager.getWifiState() == 2) {
Log.i(TAG,"网卡正在打开");
}elseif(mWifiManager.getWifiState() == 3) {
Log.i(TAG,"网卡已经打开");
}else{
Log.i(TAG,"---_---晕......没有获取到状态---_---");
}
}
/**
* 扫描周边网络
*/
publicvoidscan() {
mWifiManager.startScan();
listResult=mWifiManager.getScanResults();
if(listResult!=null) {
Log.i(TAG,"当前区域存在无线网络,请查看扫描结果");
}else{
Log.i(TAG,"当前区域没有无线网络");
}
}
/**
* 得到扫描结果
*/
publicString getScanResult() {
// 每次点击扫描之前清空上一次的扫描结果
if(mStringBuffer!=null) {
mStringBuffer=newStringBuffer();
}
// 开始扫描网络
scan();
listResult=mWifiManager.getScanResults();
if(listResult!=null) {
for(inti= 0;i<listResult.size();i++) {
mScanResult=listResult.get(i);
mStringBuffer=mStringBuffer.append("NO.").append(i+ 1)
.append(" :").append(mScanResult.SSID).append("->")
.append(mScanResult.BSSID).append("->")
.append(mScanResult.capabilities).append("->")
.append(mScanResult.frequency).append("->")
.append(mScanResult.level).append("->")
.append(mScanResult.describeContents()).append("\n\n");
}
}
Log.i(TAG,mStringBuffer.toString());
returnmStringBuffer.toString();
}
/**
* 连接指定网络
*/
publicvoidconnect() {
mWifiInfo=mWifiManager.getConnectionInfo();
}
/**
* 断开当前连接的网络
*/
publicvoiddisconnectWifi() {
intnetId= getNetworkId();
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
mWifiInfo=null;
}
/**
* 检查当前网络状态
*
*@returnString
*/
publicvoidcheckNetWorkState() {
if(mWifiInfo!=null) {
Log.i(TAG,"网络正常工作");
}else{
Log.i(TAG,"网络已断开");
}
}
/**
* 得到连接的ID
*/
publicintgetNetworkId() {
return(mWifiInfo==null) ? 0 :mWifiInfo.getNetworkId();
}
/**
* 得到IP地址
*/
publicintgetIPAddress() {
return(mWifiInfo==null) ? 0 :mWifiInfo.getIpAddress();
}
// 锁定WifiLock
publicvoidacquireWifiLock() {
mWifiLock.acquire();
}
// 解锁WifiLock
publicvoidreleaseWifiLock() {
// 判断时候锁定
if(mWifiLock.isHeld()) {
mWifiLock.acquire();
}
}
// 创建一个WifiLock
publicvoidcreatWifiLock() {
mWifiLock=mWifiManager.createWifiLock("Test");
}
// 得到配置好的网络
publicList<WifiConfiguration> getConfiguration() {
returnmWifiConfiguration;
}
// 指定配置好的网络进行连接
publicvoidconnectConfiguration(intindex) {
// 索引大于配置好的网络索引返回
if(index>=mWifiConfiguration.size()) {
return;
}
// 连接配置好的指定ID的网络
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
true);
}
// 得到MAC地址
publicString getMacAddress() {
return(mWifiInfo==null) ?"NULL":mWifiInfo.getMacAddress();
}
// 得到接入点的BSSID
publicString getBSSID() {
return(mWifiInfo==null) ?"NULL":mWifiInfo.getBSSID();
}
// 得到WifiInfo的所有信息包
publicString getWifiInfo() {
return(mWifiInfo==null) ?"NULL":mWifiInfo.toString();
}
// 添加一个网络并连接
publicintaddNetwork(WifiConfigurationwcg) {
intwcgID=mWifiManager.addNetwork(mWifiConfiguration.get(3));
mWifiManager.enableNetwork(wcgID,true);
returnwcgID;
}
}
一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一
打开RE,进入/data/misc/wifi/wpa_supplicant.conf
会看到有很多类似network={****}字段:
比如:
network={
ssid="BH02"
psk="86625757"
key_mgmt=WPA-PSK
priority=4
}
其中ssid表示wifi名称;
psk表示wifi密码。
一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一
打开或者关闭飞行模式
//打开
privatevoidoff() {
try{
Processp= Runtime.getRuntime().exec("su");
DataOutputStreamdos=newDataOutputStream(p.getOutputStream());
dos.writeBytes("settings put global airplane_mode_on 1\n");
dos.flush();
dos.writeBytes("am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true\n");
dos.flush();
dos.close();
}catch(IOExceptione) {
e.printStackTrace();
}
}
//关闭
privatevoidon() {
try{
Processp= Runtime.getRuntime().exec("su");
DataOutputStreamdos=newDataOutputStream(p.getOutputStream());
dos.writeBytes("settings put global airplane_mode_on 0\n");
dos.flush();
dos.writeBytes("am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false\n");
dos.flush();
dos.close();
}catch(Exceptione) {
}
}
权限
<uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>
一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一
0 0
- wifi相关
- WIFI相关
- wifi相关
- WIFI相关
- wifi开发相关
- WIFI 相关添加流程
- MTK wifi 驱动相关
- wifi的相关信息
- android wifi 相关
- android WIFI相关
- wifi相关配置
- wifi相关网站
- 获取Wifi相关信息
- wifi相关点滴
- iOS WIFI 相关
- wifi 相关资源
- wifi Direct相关
- WIFI 芯片相关
- reserve函数
- 第五章 函数
- eclipse修改工程名称
- python数据类型
- android uiautomator 一个截屏并且以当前时间命名图片名的方法
- WIFI相关
- 数据结构与算法笔记 lesson 16 八皇后问题
- Qt中显示一个窗体的方法
- 还在使用 Synchronized同步?试试 Volatile 吧,让你的代码更高效
- php 求一个无序数组经过排列后任意两个相邻元素之差的最大值(算法)
- 远程代答系统的使用方法
- 使用Jersey客户端请求Spring Boot(RESTFul)服务
- centOS7安装matlab2014a
- 《增长黑客》读书笔记