項目源碼完整下載地址
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。