项目源码完整下载地址
http://download.csdn.net/detail/pmqiujun/9564047
1、从搜索出来的列表中点击某项,进行输入密码连接
String wifiItemSSID = null;
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.i("ListOnItemClickListener", "start");
selectedItem = arg1;
String wifiItem = arrayWifiAdapter.getItem(arg2);// 获得选中的设备
wifiItemSSID = wifiItem;
Log.i("ListOnItemClickListener", wifiItemSSID);
SSID = wifiItemSSID;
int wifiItemId = localWifiUtils.IsConfiguration("\"" + wifiItemSSID
+ "\"");
Log.i("ListOnItemClickListener", String.valueOf(wifiItemId));
if (wifiItemId != -1) {
if (localWifiUtils.ConnectWifi(wifiItemId)) {// 连接指定WIFI
Toast.makeText(ControlPCMainActivity.this,
"当前已连接" + wifiItemSSID, 0).show();
text_hint.setText("当前连接Wifi为: " + wifiItemSSID);
SSID = wifiItemSSID;
}
} else {// 没有配置好信息,配置
WifiPswDialog pswDialog = new WifiPswDialog(
ControlPCMainActivity.this,
new OnCustomDialogListener() {
@Override
public void back(String str) {
// TODO Auto-generated method stub
wifiPassword = str;
if (wifiPassword != null) {
int netId = localWifiUtils.AddWifiConfig(
wifiResultList, wifiItemSSID,
wifiPassword);
Log.i("WifiPswDialog",
String.valueOf(netId));
// -1 表示 添加密码信息失败
if (netId != -1) {
localWifiUtils.getConfiguration();// 添加了配置信息,要重新得到配置信息
if (localWifiUtils.ConnectWifi(netId)) {
Toast.makeText(
ControlPCMainActivity.this,
"当前已连接" + wifiItemSSID, 0)
.show();
text_hint.setText("当前连接Wifi为: "
+ wifiItemSSID);
SSID = wifiItemSSID;
}
} else {
Toast.makeText(
ControlPCMainActivity.this,
"网络连接错误", Toast.LENGTH_SHORT)
.show();
}
} else {
}
}
});
pswDialog.show();
}
}
// 判定指定WIFI是否已经配置好,依据WIFI的地址BSSID,返回NetId
public int IsConfiguration(String SSID) {
Log.i("IsConfiguration", String.valueOf(wifiConfigList.size()));
for (int i = 0; i < wifiConfigList.size(); i++) {
Log.i(wifiConfigList.get(i).SSID,
String.valueOf(wifiConfigList.get(i).networkId));
if (wifiConfigList.get(i).SSID.equals(SSID)) {// 地址相同
return wifiConfigList.get(i).networkId;
}
}
return -1;
}
2、以上为核心wifi连接的部分代码,主要是获取wifi配置信息,如果未配置,则添加配置信息并且添加如wifi。