自动连接指定wifi无密码方式错误解决办法.docx
- 文档编号:1962388
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:12
- 大小:17.01KB
自动连接指定wifi无密码方式错误解决办法.docx
《自动连接指定wifi无密码方式错误解决办法.docx》由会员分享,可在线阅读,更多相关《自动连接指定wifi无密码方式错误解决办法.docx(12页珍藏版)》请在冰豆网上搜索。
自动连接指定wifi无密码方式错误解决办法
自动连接指定wifi(无密码方式错误)
/**
* 网上好多自动连接WIFI的资料都同一个错误,估计大家都是抄的吧,但是都有一个问题,那就是无密码方式连接不上,后来终于找到解决办法,给大家共享一下
*/
packagecom.wells.tool;
importjava.util.List;
importcom.wells.activity.HomeActivity;
importandroid.content.Context;
import.wifi.ScanResult;
import.wifi.WifiConfiguration;
import.wifi.WifiInfo;
import.wifi.WifiManager;
import.wifi.WifiManager.WifiLock;
importandroid.util.Log;
/**
*打开WIFI,自动连接wells网络
*
*@authorliuyanping
*
* 2014年7月18日
*/
publicclassOpenWifi{
//定义WifiManager对象
publicWifiManagermWifiManager;
//定义WifiInfo对象
privateWifiInfomWifiInfo;
//扫描出的网络连接列表
privateList
//网络连接列表
privateList
//定义一个WifiLock
WifiLockmWifiLock;
/**
*构造器
*/
publicOpenWifi(Contextcontext){
//取得WifiManager对象
mWifiManager=(WifiManager)context
.getSystemService(Context.WIFI_SERVICE);
//取得WifiInfo对象
mWifiInfo=mWifiManager.getConnectionInfo();
}
/**
*打开WIFI
*/
publicvoidopenWifi(){
if(!
mWifiManager.isWifiEnabled()){
mWifiManager.setWifiEnabled(true);
}
}
/**
*关闭WIFI
*/
publicvoidcloseWifi(){
if(mWifiManager.isWifiEnabled()){
mWifiManager.setWifiEnabled(false);
}
}
/**
*检查当前WIFI状态
*
*@return
*/
publicintcheckState(){
returnmWifiManager.getWifiState();
}
/**
*锁定WifiLock
*/
publicvoidacquireWifiLock(){
mWifiLock.acquire();
}
/**
*解锁WifiLock
*/
publicvoidreleaseWifiLock(){
//判断时候锁定
if(mWifiLock.isHeld()){
mWifiLock.acquire();
}
}
/**
*创建一个WifiLock
*/
publicvoidcreatWifiLock(){
mWifiLock=mWifiManager.createWifiLock("Test");
}
/**
*得到配置好的网络
*
*@return
*/
publicList
returnmWifiConfiguration;
}
/**
*提供一个外部接口,传入要连接的无线网
*
*@paramssid
*@parampassword
*@paramtype
*/
publicvoidconnect(Stringssid,Stringpassword,inttype){
Threadthread=newThread(newConnectRunnable(ssid,password,type));
thread.start();
}
classConnectRunnableimplementsRunnable{
privatestaticfinalStringTAG="ConnectRunnable====";
privateStringssid;
privateStringpassword;
privateinttype;
publicConnectRunnable(Stringssid,Stringpassword,inttype){
this.ssid=ssid;
this.password=password;
this.type=type;
}
@Override
publicvoidrun(){
//打开wifi
openWifi();
//开启wifi功能需要一段时间(我在手机上测试一般需要1-3秒左右),所以要等到wifi
//状态变成WIFI_STATE_ENABLED的时候才能执行下面的语句
while(mWifiManager.getWifiState()==WifiManager.WIFI_STATE_ENABLING){
try{
//为了避免程序一直while循环,让它睡个100毫秒检测……
Thread.sleep(100);
}catch(InterruptedExceptionie){
}
}
WifiConfigurationwifiConfig=CreateWifiInfo(ssid,password,type);
//
if(wifiConfig==null){
Log.d(TAG,"wifiConfigisnull!
");
return;
}
WifiConfigurationtempConfig=IsExsits(ssid);
if(tempConfig!
=null){
mWifiManager.removeNetwork(tempCworkId);
}
intnetID=mWifiManager.addNetwork(wifiConfig);
booleanenabled=mWifiManager.enableNetwork(netID,true);
Log.d(TAG,"enableNetworkstatusenable="+enabled);
booleanconnected=mWifiManager.reconnect();
Log.d(TAG,"enableNetworkconnected="+connected);
}
}
/**
*指定配置好的网络进行连接
*
*@paramindex
*/
publicvoidconnectConfiguration(intindex){
//索引大于配置好的网络索引返回
if(index>mWifiConfiguration.size()){
return;
}
//连接配置好的指定ID的网络
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
true);
}
publicvoidstartScan(){
mWifiManager.startScan();
//得到扫描结果
mWifiList=mWifiManager.getScanResults();
//得到配置好的网络连接
mWifiConfiguration=mWifiManager.getConfiguredNetworks();
}
/**
*得到网络列表
*/
publicList
returnmWifiList;
}
/**
*查看扫描结果
*
*@return
*/
publicStringBuilderlookUpScan(){
StringBuilderstringBuilder=newStringBuilder();
for(inti=0;i stringBuilder .append("Index_"+newInteger(i+1).toString()+": "); //将ScanResult信息转换成一个字符串包 //其中把包括: BSSID、SSID、capabilities、frequency、level stringBuilder.append((mWifiList.get(i)).toString()); stringBuilder.append("/n"); } returnstringBuilder; } /** *得到MAC地址 * *@return */ publicStringgetMacAddress(){ return(mWifiInfo==null)? "NULL": mWifiInfo.getMacAddress(); } /** *得到接入点的BSSID * *@return */ publicStringgetBSSID(){ return(mWifiInfo==null)? "NULL": mWifiInfo.getBSSID(); } /** *得到IP地址 * *@return */ publicintgetIPAddress(){ return(mWifiInfo==null)? 0: mWifiInfo.getIpAddress(); } /** *得到连接的ID * *@return */ publicintgetNetworkId(){ return(mWifiInfo==null)? 0: mWifiInfo.getNetworkId(); } /** *得到WifiInfo的所有信息包 * *@return */ publicStringgetWifiInfo(){ return(mWifiInfo==null)? "NULL": mWifiInfo.toString(); } /** *添加一个网络并连接 * *@paramwcg */ publicv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 连接 指定 wifi 密码 方式 错误 解决办法