WIFI相关
2016-12-09 13:31
190 查看
[align=left]packageorg.sunchao;[/align]
[align=left]
[/align]
[align=left]importjava.util.List;[/align]
[align=left]
[/align]
[align=left]importandroid.content.Context;[/align]
[align=left]importandroid.net.wifi.ScanResult;[/align]
[align=left]importandroid.net.wifi.WifiConfiguration;[/align]
[align=left]importandroid.net.wifi.WifiInfo;[/align]
[align=left]importandroid.net.wifi.WifiManager;[/align]
[align=left]importandroid.net.wifi.WifiManager.WifiLock;[/align]
[align=left]importandroid.util.Log;[/align]
[align=left]
[/align]
publicclassWifiAdmin
{
[align=left] privatefinalstaticStringTAG="WifiAdmin";[/align]
[align=left] privateStringBuffermStringBuffer=newStringBuffer();[/align]
[align=left] privateList<ScanResult>listResult;[/align]
[align=left] privateScanResultmScanResult;[/align]
//
定义WifiManager对象
privateWifiManagermWifiManager;
//
定义WifiInfo对象
[align=left] privateWifiInfomWifiInfo;[/align]
//
网络连接列表
[align=left] privateList<WifiConfiguration>mWifiConfiguration;[/align]
//
定义一个WifiLock
[align=left] WifiLockmWifiLock;[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 构造方法[/align]
[align=left] */[/align]
publicWifiAdmin(Contextcontext)
{
mWifiManager=
(WifiManager)context
[align=left] .getSystemService(Context.WIFI_SERVICE);[/align]
[align=left] mWifiInfo=mWifiManager.getConnectionInfo();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 打开Wifi网卡[/align]
[align=left] */[/align]
publicvoidopenNetCard()
{
if(!mWifiManager.isWifiEnabled())
{
[align=left] mWifiManager.setWifiEnabled(true);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 关闭Wifi网卡[/align]
[align=left] */[/align]
publicvoidcloseNetCard()
{
if(mWifiManager.isWifiEnabled())
{
[align=left] mWifiManager.setWifiEnabled(false);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 检查当前Wifi网卡状态[/align]
[align=left] */[/align]
publicvoidcheckNetCardState()
{
if(mWifiManager.getWifiState()
== 0) {
[align=left] Log.i(TAG,"网卡正在关闭");[/align]
}elseif(mWifiManager.getWifiState()
== 1) {
[align=left] Log.i(TAG,"网卡已经关闭");[/align]
}elseif(mWifiManager.getWifiState()
== 2) {
[align=left] Log.i(TAG,"网卡正在打开");[/align]
}elseif(mWifiManager.getWifiState()
== 3) {
[align=left] Log.i(TAG,"网卡已经打开");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"---_---晕......没有获取到状态---_---");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 扫描周边网络[/align]
[align=left] */[/align]
publicvoidscan()
{
[align=left] mWifiManager.startScan();[/align]
[align=left] listResult=mWifiManager.getScanResults();[/align]
if(listResult!=null)
{
[align=left] Log.i(TAG,"当前区域存在无线网络,请查看扫描结果");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"当前区域没有无线网络");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到扫描结果[/align]
[align=left] */[/align]
publicString
getScanResult() {
//
每次点击扫描之前清空上一次的扫描结果
if(mStringBuffer!=null)
{
[align=left] mStringBuffer=newStringBuffer();[/align]
[align=left] }[/align]
//
开始扫描网络
[align=left] scan();[/align]
[align=left] listResult=mWifiManager.getScanResults();[/align]
if(listResult!=null)
{
for(inti=
0;i<listResult.size();i++)
{
[align=left] mScanResult=listResult.get(i);[/align]
mStringBuffer=mStringBuffer.append("NO.").append(i+
1)
.append("
:").append(mScanResult.SSID).append("->")
[align=left] .append(mScanResult.BSSID).append("->")[/align]
[align=left] .append(mScanResult.capabilities).append("->")[/align]
[align=left] .append(mScanResult.frequency).append("->")[/align]
[align=left] .append(mScanResult.level).append("->")[/align]
[align=left] .append(mScanResult.describeContents()).append("\n\n");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] Log.i(TAG,mStringBuffer.toString());[/align]
[align=left] returnmStringBuffer.toString();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 连接指定网络[/align]
[align=left] */[/align]
publicvoidconnect()
{
[align=left] mWifiInfo=mWifiManager.getConnectionInfo();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 断开当前连接的网络[/align]
[align=left] */[/align]
publicvoiddisconnectWifi()
{
intnetId=
getNetworkId();
[align=left] mWifiManager.disableNetwork(netId);[/align]
[align=left] mWifiManager.disconnect();[/align]
[align=left] mWifiInfo=null;[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 检查当前网络状态[/align]
[align=left] *[/align]
[align=left] *@returnString[/align]
[align=left] */[/align]
publicvoidcheckNetWorkState()
{
if(mWifiInfo!=null)
{
[align=left] Log.i(TAG,"网络正常工作");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"网络已断开");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到连接的ID[/align]
[align=left] */[/align]
publicintgetNetworkId()
{
return(mWifiInfo==null)
? 0 :mWifiInfo.getNetworkId();
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到IP地址[/align]
[align=left] */[/align]
publicintgetIPAddress()
{
return(mWifiInfo==null)
? 0 :mWifiInfo.getIpAddress();
[align=left] }[/align]
[align=left]
[/align]
//
锁定WifiLock
publicvoidacquireWifiLock()
{
[align=left] mWifiLock.acquire();[/align]
[align=left] }[/align]
[align=left]
[/align]
//
解锁WifiLock
publicvoidreleaseWifiLock()
{
//
判断时候锁定
if(mWifiLock.isHeld())
{
[align=left] mWifiLock.acquire();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
//
创建一个WifiLock
publicvoidcreatWifiLock()
{
[align=left] mWifiLock=mWifiManager.createWifiLock("Test");[/align]
[align=left] }[/align]
[align=left]
[/align]
//
得到配置好的网络
publicList<WifiConfiguration>
getConfiguration() {
[align=left] returnmWifiConfiguration;[/align]
[align=left] }[/align]
[align=left]
[/align]
//
指定配置好的网络进行连接
publicvoidconnectConfiguration(intindex)
{
//
索引大于配置好的网络索引返回
if(index>=mWifiConfiguration.size())
{
[align=left] return;[/align]
[align=left] }[/align]
//
连接配置好的指定ID的网络
[align=left] mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,[/align]
[align=left] true);[/align]
[align=left] }[/align]
[align=left]
[/align]
//
得到MAC地址
publicString
getMacAddress() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.getMacAddress();
[align=left] }[/align]
[align=left]
[/align]
//
得到接入点的BSSID
publicString
getBSSID() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.getBSSID();
[align=left] }[/align]
[align=left]
[/align]
//
得到WifiInfo的所有信息包
publicString
getWifiInfo() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.toString();
[align=left] }[/align]
[align=left]
[/align]
//
添加一个网络并连接
publicintaddNetwork(WifiConfigurationwcg)
{
[align=left] intwcgID=mWifiManager.addNetwork(mWifiConfiguration.get(3));[/align]
[align=left] mWifiManager.enableNetwork(wcgID,true);[/align]
[align=left] returnwcgID;[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
打开RE,进入/data/misc/wifi/wpa_supplicant.conf
会看到有很多类似network={****}字段:
比如:
network={
ssid="BH02"
psk="86625757"
key_mgmt=WPA-PSK
priority=4
}
其中ssid表示wifi名称;
psk表示wifi密码。
一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一
打开或者关闭飞行模式
//打开
privatevoidoff()
{
[align=left] [/align]
[align=left] try{[/align]
Processp=
Runtime.getRuntime().exec("su");
[align=left] DataOutputStreamdos=newDataOutputStream(p.getOutputStream());[/align]
dos.writeBytes("settings
put global airplane_mode_on 1\n");
[align=left] dos.flush();[/align]
dos.writeBytes("am
broadcast -a android.intent.action.AIRPLANE_MODE --ez state true\n");
[align=left] dos.flush();[/align]
[align=left] dos.close();[/align]
[align=left] [/align]
}catch(IOExceptione)
{
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]//关闭[/align]
privatevoidon()
{
[align=left] try{[/align]
Processp=
Runtime.getRuntime().exec("su");
[align=left] DataOutputStreamdos=newDataOutputStream(p.getOutputStream());[/align]
dos.writeBytes("settings
put global airplane_mode_on 0\n");
[align=left] dos.flush();[/align]
dos.writeBytes("am
broadcast -a android.intent.action.AIRPLANE_MODE --ez state false\n");
[align=left] dos.flush();[/align]
[align=left] dos.close();[/align]
[align=left] [/align]
}catch(Exceptione)
{
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]权限[/align]
[align=left] <uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>[/align]
[align=left]
[/align]
[align=left]一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一[/align]
[align=left]
[/align]
[align=left]importjava.util.List;[/align]
[align=left]
[/align]
[align=left]importandroid.content.Context;[/align]
[align=left]importandroid.net.wifi.ScanResult;[/align]
[align=left]importandroid.net.wifi.WifiConfiguration;[/align]
[align=left]importandroid.net.wifi.WifiInfo;[/align]
[align=left]importandroid.net.wifi.WifiManager;[/align]
[align=left]importandroid.net.wifi.WifiManager.WifiLock;[/align]
[align=left]importandroid.util.Log;[/align]
[align=left]
[/align]
publicclassWifiAdmin
{
[align=left] privatefinalstaticStringTAG="WifiAdmin";[/align]
[align=left] privateStringBuffermStringBuffer=newStringBuffer();[/align]
[align=left] privateList<ScanResult>listResult;[/align]
[align=left] privateScanResultmScanResult;[/align]
//
定义WifiManager对象
privateWifiManagermWifiManager;
//
定义WifiInfo对象
[align=left] privateWifiInfomWifiInfo;[/align]
//
网络连接列表
[align=left] privateList<WifiConfiguration>mWifiConfiguration;[/align]
//
定义一个WifiLock
[align=left] WifiLockmWifiLock;[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 构造方法[/align]
[align=left] */[/align]
publicWifiAdmin(Contextcontext)
{
mWifiManager=
(WifiManager)context
[align=left] .getSystemService(Context.WIFI_SERVICE);[/align]
[align=left] mWifiInfo=mWifiManager.getConnectionInfo();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 打开Wifi网卡[/align]
[align=left] */[/align]
publicvoidopenNetCard()
{
if(!mWifiManager.isWifiEnabled())
{
[align=left] mWifiManager.setWifiEnabled(true);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 关闭Wifi网卡[/align]
[align=left] */[/align]
publicvoidcloseNetCard()
{
if(mWifiManager.isWifiEnabled())
{
[align=left] mWifiManager.setWifiEnabled(false);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 检查当前Wifi网卡状态[/align]
[align=left] */[/align]
publicvoidcheckNetCardState()
{
if(mWifiManager.getWifiState()
== 0) {
[align=left] Log.i(TAG,"网卡正在关闭");[/align]
}elseif(mWifiManager.getWifiState()
== 1) {
[align=left] Log.i(TAG,"网卡已经关闭");[/align]
}elseif(mWifiManager.getWifiState()
== 2) {
[align=left] Log.i(TAG,"网卡正在打开");[/align]
}elseif(mWifiManager.getWifiState()
== 3) {
[align=left] Log.i(TAG,"网卡已经打开");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"---_---晕......没有获取到状态---_---");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 扫描周边网络[/align]
[align=left] */[/align]
publicvoidscan()
{
[align=left] mWifiManager.startScan();[/align]
[align=left] listResult=mWifiManager.getScanResults();[/align]
if(listResult!=null)
{
[align=left] Log.i(TAG,"当前区域存在无线网络,请查看扫描结果");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"当前区域没有无线网络");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到扫描结果[/align]
[align=left] */[/align]
publicString
getScanResult() {
//
每次点击扫描之前清空上一次的扫描结果
if(mStringBuffer!=null)
{
[align=left] mStringBuffer=newStringBuffer();[/align]
[align=left] }[/align]
//
开始扫描网络
[align=left] scan();[/align]
[align=left] listResult=mWifiManager.getScanResults();[/align]
if(listResult!=null)
{
for(inti=
0;i<listResult.size();i++)
{
[align=left] mScanResult=listResult.get(i);[/align]
mStringBuffer=mStringBuffer.append("NO.").append(i+
1)
.append("
:").append(mScanResult.SSID).append("->")
[align=left] .append(mScanResult.BSSID).append("->")[/align]
[align=left] .append(mScanResult.capabilities).append("->")[/align]
[align=left] .append(mScanResult.frequency).append("->")[/align]
[align=left] .append(mScanResult.level).append("->")[/align]
[align=left] .append(mScanResult.describeContents()).append("\n\n");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] Log.i(TAG,mStringBuffer.toString());[/align]
[align=left] returnmStringBuffer.toString();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 连接指定网络[/align]
[align=left] */[/align]
publicvoidconnect()
{
[align=left] mWifiInfo=mWifiManager.getConnectionInfo();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 断开当前连接的网络[/align]
[align=left] */[/align]
publicvoiddisconnectWifi()
{
intnetId=
getNetworkId();
[align=left] mWifiManager.disableNetwork(netId);[/align]
[align=left] mWifiManager.disconnect();[/align]
[align=left] mWifiInfo=null;[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 检查当前网络状态[/align]
[align=left] *[/align]
[align=left] *@returnString[/align]
[align=left] */[/align]
publicvoidcheckNetWorkState()
{
if(mWifiInfo!=null)
{
[align=left] Log.i(TAG,"网络正常工作");[/align]
[align=left] }else{[/align]
[align=left] Log.i(TAG,"网络已断开");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到连接的ID[/align]
[align=left] */[/align]
publicintgetNetworkId()
{
return(mWifiInfo==null)
? 0 :mWifiInfo.getNetworkId();
[align=left] }[/align]
[align=left]
[/align]
[align=left] /**[/align]
[align=left] * 得到IP地址[/align]
[align=left] */[/align]
publicintgetIPAddress()
{
return(mWifiInfo==null)
? 0 :mWifiInfo.getIpAddress();
[align=left] }[/align]
[align=left]
[/align]
//
锁定WifiLock
publicvoidacquireWifiLock()
{
[align=left] mWifiLock.acquire();[/align]
[align=left] }[/align]
[align=left]
[/align]
//
解锁WifiLock
publicvoidreleaseWifiLock()
{
//
判断时候锁定
if(mWifiLock.isHeld())
{
[align=left] mWifiLock.acquire();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
//
创建一个WifiLock
publicvoidcreatWifiLock()
{
[align=left] mWifiLock=mWifiManager.createWifiLock("Test");[/align]
[align=left] }[/align]
[align=left]
[/align]
//
得到配置好的网络
publicList<WifiConfiguration>
getConfiguration() {
[align=left] returnmWifiConfiguration;[/align]
[align=left] }[/align]
[align=left]
[/align]
//
指定配置好的网络进行连接
publicvoidconnectConfiguration(intindex)
{
//
索引大于配置好的网络索引返回
if(index>=mWifiConfiguration.size())
{
[align=left] return;[/align]
[align=left] }[/align]
//
连接配置好的指定ID的网络
[align=left] mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,[/align]
[align=left] true);[/align]
[align=left] }[/align]
[align=left]
[/align]
//
得到MAC地址
publicString
getMacAddress() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.getMacAddress();
[align=left] }[/align]
[align=left]
[/align]
//
得到接入点的BSSID
publicString
getBSSID() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.getBSSID();
[align=left] }[/align]
[align=left]
[/align]
//
得到WifiInfo的所有信息包
publicString
getWifiInfo() {
return(mWifiInfo==null)
?"NULL":mWifiInfo.toString();
[align=left] }[/align]
[align=left]
[/align]
//
添加一个网络并连接
publicintaddNetwork(WifiConfigurationwcg)
{
[align=left] intwcgID=mWifiManager.addNetwork(mWifiConfiguration.get(3));[/align]
[align=left] mWifiManager.enableNetwork(wcgID,true);[/align]
[align=left] returnwcgID;[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
打开RE,进入/data/misc/wifi/wpa_supplicant.conf
会看到有很多类似network={****}字段:
比如:
network={
ssid="BH02"
psk="86625757"
key_mgmt=WPA-PSK
priority=4
}
其中ssid表示wifi名称;
psk表示wifi密码。
一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一
打开或者关闭飞行模式
//打开
privatevoidoff()
{
[align=left] [/align]
[align=left] try{[/align]
Processp=
Runtime.getRuntime().exec("su");
[align=left] DataOutputStreamdos=newDataOutputStream(p.getOutputStream());[/align]
dos.writeBytes("settings
put global airplane_mode_on 1\n");
[align=left] dos.flush();[/align]
dos.writeBytes("am
broadcast -a android.intent.action.AIRPLANE_MODE --ez state true\n");
[align=left] dos.flush();[/align]
[align=left] dos.close();[/align]
[align=left] [/align]
}catch(IOExceptione)
{
[align=left] e.printStackTrace();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]//关闭[/align]
privatevoidon()
{
[align=left] try{[/align]
Processp=
Runtime.getRuntime().exec("su");
[align=left] DataOutputStreamdos=newDataOutputStream(p.getOutputStream());[/align]
dos.writeBytes("settings
put global airplane_mode_on 0\n");
[align=left] dos.flush();[/align]
dos.writeBytes("am
broadcast -a android.intent.action.AIRPLANE_MODE --ez state false\n");
[align=left] dos.flush();[/align]
[align=left] dos.close();[/align]
[align=left] [/align]
}catch(Exceptione)
{
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]权限[/align]
[align=left] <uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>[/align]
[align=left]
[/align]
[align=left]一一一一一一一一一一一我是一条你看不见的分割线一一一一一一一一一[/align]
相关文章推荐
- iOS开发中WiFi相关功能总结
- wifi相关网站
- 关于wifi启动是获取相关信息
- Wifi-direct 相关记录
- Android WiFi 权限、广播、连接、踩坑相关记录
- Wifi相关----WifiConfiguration+ScanResult
- wifi相关配置
- Android 控制wifi 相关操作实例
- Wifi相关知识
- Android wifi 设置相关
- iOS开发中WiFi相关功能总结
- WDS、WPS及WIFI2.4/5G相关
- Android系统信息获取 之十四:获取WIFI热点相关信息
- wifi相关(一)wifi的简单分析
- 与android wifi 电流相关的点
- WIFI 转串口相关开发指南
- Android 控制WIFI相关操作
- wifi 相关资源
- Wifi相关----WifiConfiguration+ScanResult