自动连接指定wifi无密码方式错误解决办法Word格式文档下载.docx
《自动连接指定wifi无密码方式错误解决办法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《自动连接指定wifi无密码方式错误解决办法Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![自动连接指定wifi无密码方式错误解决办法Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/25/13aa338c-b443-4d2e-933c-8effa4af6185/13aa338c-b443-4d2e-933c-8effa4af61851.gif)
*打开WIFI,自动连接wells网络
*@authorliuyanping
*
2014年7月18日
publicclassOpenWifi{
//定义WifiManager对象
publicWifiManagermWifiManager;
//定义WifiInfo对象
privateWifiInfomWifiInfo;
//扫描出的网络连接列表
privateList<
ScanResult>
mWifiList;
//网络连接列表
WifiConfiguration>
mWifiConfiguration;
//定义一个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()){
*创建一个WifiLock
publicvoidcreatWifiLock(){
mWifiLock=mWifiManager.createWifiLock("
Test"
);
*得到配置好的网络
publicList<
getConfiguration(){
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);
enableNetworkstatusenable="
+enabled);
booleanconnected=mWifiManager.reconnect();
enableNetworkconnected="
+connected);
*指定配置好的网络进行连接
*@paramindex
publicvoidconnectConfiguration(intindex){
//索引大于配置好的网络索引返回
if(index>
mWifiConfiguration.size()){
//连接配置好的指定ID的网络
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
true);
publicvoidstartScan(){
mWifiManager.startScan();
//得到扫描结果
mWifiList=mWifiManager.getScanResults();
//得到配置好的网络连接
mWifiConfiguration=mWifiManager.getConfiguredNetworks();
*得到网络列表
getWifiList(){
returnmWifiList;
*查看扫描结果
publicStringBuilderlookUpScan(){
StringBuilderstringBuilder=newStringBuilder();
for(inti=0;
i<
mWifiList.size();
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地址
publicStringgetMacAddress(){
return(mWifiInfo==null)?
"
NULL"
:
mWifiInfo.getMacAddress();
*得到接入点的BSSID
publicStringgetBSSID(){
mWifiInfo.getBSSID();
*得到IP地址
publicintgetIPAddress(){
0:
mWifiInfo.getIpAddress();
*得到连接的ID
publicintgetNetworkId(){
mWifiInfo.getNetworkId();
*得到WifiInfo的所有信息包
publicStringgetWifiInfo(){
mWifiInfo.toString();
*添加一个网络并连接
*@paramwcg
publicv